diff --git a/cmd/ipfs2/main.go b/cmd/ipfs2/main.go index 2ccef1645acba2cf717381f93186f1ab01f5e564..0ef3ac69a51790f74b0ca2c876dfa8cdab766115 100644 --- a/cmd/ipfs2/main.go +++ b/cmd/ipfs2/main.go @@ -160,7 +160,7 @@ func (i *cmdInvocation) Run() (output io.Reader, err error) { func (i *cmdInvocation) Parse(args []string) error { var err error - i.req, i.root, i.cmd, i.path, err = cmdsCli.Parse(args, Root) + i.req, i.cmd, i.path, err = cmdsCli.Parse(args, Root) if err != nil { return err } diff --git a/commands/cli/parse.go b/commands/cli/parse.go index 8e1dba86f67e2a74a55321d27800fb27ca27b9bb..3beb0e600bcd5c67e93cafad93dc233e11e55e64 100644 --- a/commands/cli/parse.go +++ b/commands/cli/parse.go @@ -15,38 +15,36 @@ var ErrInvalidSubcmd = errors.New("subcommand not found") // Parse parses the input commandline string (cmd, flags, and args). // returns the corresponding command Request object. // Parse will search each root to find the one that best matches the requested subcommand. -// TODO: get rid of extraneous return values (e.g. we ended up not needing the root value anymore) -// TODO: get rid of multiple-root support, we should only need one now -func Parse(input []string, root *cmds.Command) (cmds.Request, *cmds.Command, *cmds.Command, []string, error) { +func Parse(input []string, root *cmds.Command) (cmds.Request, *cmds.Command, []string, error) { // use the root that matches the longest path (most accurately matches request) path, input, cmd := parsePath(input, root) opts, stringArgs, err := parseOptions(input) if err != nil { - return nil, root, cmd, path, err + return nil, cmd, path, err } if len(path) == 0 { - return nil, root, nil, path, ErrInvalidSubcmd + return nil, nil, path, ErrInvalidSubcmd } args, err := parseArgs(stringArgs, cmd) if err != nil { - return nil, root, cmd, path, err + return nil, cmd, path, err } optDefs, err := root.GetOptions(path) if err != nil { - return nil, root, cmd, path, err + return nil, cmd, path, err } req := cmds.NewRequest(path, opts, args, cmd, optDefs) err = cmd.CheckArguments(req) if err != nil { - return req, root, cmd, path, err + return req, cmd, path, err } - return req, root, cmd, path, nil + return req, cmd, path, nil } // parsePath separates the command path and the opts and args from a command string