1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-08-06 11:31:54 +08:00

commands/cli: Made Parse return the resolved subcommand, even on error

This commit is contained in:
Matt Bell
2014-11-04 18:55:59 -08:00
committed by Juan Batiz-Benet
parent 37f05a8bf6
commit 48c108d523

View File

@ -11,7 +11,7 @@ import (
// Parse parses the input commandline string (cmd, flags, and args).
// returns the corresponding command Request object.
func Parse(input []string, roots ...*cmds.Command) (cmds.Request, *cmds.Command, error) {
func Parse(input []string, roots ...*cmds.Command) (cmds.Request, *cmds.Command, *cmds.Command, error) {
var root, cmd *cmds.Command
var path, stringArgs []string
var opts map[string]interface{}
@ -22,7 +22,7 @@ func Parse(input []string, roots ...*cmds.Command) (cmds.Request, *cmds.Command,
p, i, c := parsePath(input, r)
o, s, err := parseOptions(i)
if err != nil {
return nil, nil, err
return nil, root, c, err
}
length := len(p)
@ -37,22 +37,22 @@ func Parse(input []string, roots ...*cmds.Command) (cmds.Request, *cmds.Command,
}
if maxLength == 0 {
return nil, nil, errors.New("Not a valid subcommand")
return nil, root, nil, errors.New("Not a valid subcommand")
}
args, err := parseArgs(stringArgs, cmd)
if err != nil {
return nil, nil, err
return nil, root, cmd, err
}
req := cmds.NewRequest(path, opts, args, cmd)
err = cmd.CheckArguments(req)
if err != nil {
return nil, nil, err
return nil, root, cmd, err
}
return req, root, nil
return req, root, cmd, nil
}
// parsePath separates the command path and the opts and args from a command string