(opts *unlinkOpts)
| 110 | } |
| 111 | |
| 112 | func validateRepoOrTeamFlag(opts *unlinkOpts) error { |
| 113 | |
| 114 | unlinkedTarget := "" |
| 115 | if opts.repo != "" { |
| 116 | unlinkedTarget = opts.repo |
| 117 | } else if opts.team != "" { |
| 118 | unlinkedTarget = opts.team |
| 119 | } |
| 120 | |
| 121 | if strings.Contains(unlinkedTarget, "/") { |
| 122 | nameArgs := strings.Split(unlinkedTarget, "/") |
| 123 | var host, owner, name string |
| 124 | |
| 125 | if len(nameArgs) == 2 { |
| 126 | owner = nameArgs[0] |
| 127 | name = nameArgs[1] |
| 128 | } else if len(nameArgs) == 3 { |
| 129 | host = nameArgs[0] |
| 130 | owner = nameArgs[1] |
| 131 | name = nameArgs[2] |
| 132 | } else { |
| 133 | if opts.repo != "" { |
| 134 | return fmt.Errorf("expected the \"[HOST/]OWNER/REPO\" or \"REPO\" format, got \"%s\"", unlinkedTarget) |
| 135 | } else if opts.team != "" { |
| 136 | return fmt.Errorf("expected the \"[HOST/]OWNER/TEAM\" or \"TEAM\" format, got \"%s\"", unlinkedTarget) |
| 137 | } |
| 138 | } |
| 139 | |
| 140 | if opts.owner != "" && opts.owner != owner { |
| 141 | return fmt.Errorf("'%s' has different owner from '%s'", unlinkedTarget, opts.owner) |
| 142 | } |
| 143 | |
| 144 | opts.owner = owner |
| 145 | opts.host = host |
| 146 | if opts.repo != "" { |
| 147 | opts.repo = name |
| 148 | } else if opts.team != "" { |
| 149 | opts.team = name |
| 150 | } |
| 151 | } |
| 152 | return nil |
| 153 | } |
| 154 | |
| 155 | func runUnlink(config unlinkConfig) error { |
| 156 | canPrompt := config.io.CanPrompt() |
no test coverage detected