manuallyProcessArgs processes an arg array, removing special args. Returns two sets of args: known and unknown (in that order)
(args []string)
| 168 | // |
| 169 | // Returns two sets of args: known and unknown (in that order) |
| 170 | func manuallyProcessArgs(args []string) ([]string, []string) { |
| 171 | known := []string{} |
| 172 | unknown := []string{} |
| 173 | kvargs := []string{"--kube-context", "--namespace", "-n", "--kubeconfig", "--kube-apiserver", "--kube-token", "--kube-as-user", "--kube-as-group", "--kube-ca-file", "--registry-config", "--repository-cache", "--repository-config", "--kube-insecure-skip-tls-verify", "--kube-tls-server-name"} |
| 174 | knownArg := func(a string) bool { |
| 175 | for _, pre := range kvargs { |
| 176 | if strings.HasPrefix(a, pre+"=") { |
| 177 | return true |
| 178 | } |
| 179 | } |
| 180 | return false |
| 181 | } |
| 182 | |
| 183 | isKnown := func(v string) string { |
| 184 | if slices.Contains(kvargs, v) { |
| 185 | return v |
| 186 | } |
| 187 | return "" |
| 188 | } |
| 189 | |
| 190 | for i := 0; i < len(args); i++ { |
| 191 | switch a := args[i]; a { |
| 192 | case "--debug": |
| 193 | known = append(known, a) |
| 194 | case isKnown(a): |
| 195 | known = append(known, a) |
| 196 | i++ |
| 197 | if i < len(args) { |
| 198 | known = append(known, args[i]) |
| 199 | } |
| 200 | default: |
| 201 | if knownArg(a) { |
| 202 | known = append(known, a) |
| 203 | continue |
| 204 | } |
| 205 | unknown = append(unknown, a) |
| 206 | } |
| 207 | } |
| 208 | return known, unknown |
| 209 | } |
| 210 | |
| 211 | // pluginCommand represents the optional completion.yaml file of a plugin |
| 212 | type pluginCommand struct { |
searching dependent graphs…