(args []string, commandList interface{})
| 214 | } |
| 215 | |
| 216 | func (p *CommandParser) parse(args []string, commandList interface{}) (int, error) { |
| 217 | flagsParser := flags.NewParser(commandList, flags.HelpFlag) |
| 218 | flagsParser.CommandHandler = p.executionWrapper |
| 219 | extraArgs, err := flagsParser.ParseArgs(args) |
| 220 | if err == nil { |
| 221 | return 0, nil |
| 222 | } else if _, ok := err.(translatableerror.V3V2SwitchError); ok { |
| 223 | return 1, err |
| 224 | } else if flagErr, ok := err.(*flags.Error); ok { |
| 225 | return p.handleFlagErrorAndCommandHelp(flagErr, flagsParser, extraArgs, args, commandList) |
| 226 | } else if err == ErrFailed { |
| 227 | return 1, nil |
| 228 | } else if err == ParseErr { |
| 229 | fmt.Println() |
| 230 | p.parse([]string{"help", args[0]}, commandList) // nolint: errcheck |
| 231 | return 1, err |
| 232 | } else if exitError, ok := err.(*ssh.ExitError); ok { |
| 233 | return exitError.ExitStatus(), nil |
| 234 | } else if curlError, ok := err.(translatableerror.CurlExit22Error); ok { |
| 235 | return 22, curlError |
| 236 | } |
| 237 | |
| 238 | fmt.Fprintf(os.Stderr, "Unexpected error: %s\n", err.Error()) |
| 239 | return 1, nil |
| 240 | } |
| 241 | |
| 242 | func containsHelpFlag(args []string) bool { |
| 243 | for _, arg := range args { |
no test coverage detected