MCPcopy
hub / github.com/cloudfoundry/cli / parse

Method parse

util/command_parser/command_parser.go:216–240  ·  view source on GitHub ↗
(args []string, commandList interface{})

Source from the content-addressed store, hash-verified

214}
215
216func (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
242func containsHelpFlag(args []string) bool {
243 for _, arg := range args {

Callers 2

ParseCommandFromArgsMethod · 0.95

Calls 3

PrintlnMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected