From 2c8fc8564c193d70944f9119d19edf1605340275 Mon Sep 17 00:00:00 2001 From: Matt Bell <mappum@gmail.com> Date: Sun, 2 Nov 2014 21:46:11 -0800 Subject: [PATCH] commands/cli: Made parser handle variadic arguments --- commands/cli/parse.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/commands/cli/parse.go b/commands/cli/parse.go index 9eda875e8..8417eedf9 100644 --- a/commands/cli/parse.go +++ b/commands/cli/parse.go @@ -108,19 +108,19 @@ func parseOptions(input []string) (map[string]interface{}, []string, error) { // Note that the argument handling here is dumb, it does not do any error-checking. // (Arguments are further processed when the request is passed to the command to run) func parseArgs(stringArgs []string, cmd *cmds.Command) ([]interface{}, error) { - args := make([]interface{}, len(cmd.Arguments)) + var argDef cmds.Argument + args := make([]interface{}, len(stringArgs)) - for i, arg := range cmd.Arguments { - // TODO: handle variadic args - if i >= len(stringArgs) { - break + for i, arg := range stringArgs { + if i < len(cmd.Arguments) { + argDef = cmd.Arguments[i] } - if arg.Type == cmds.ArgString { - args[i] = stringArgs[i] + if argDef.Type == cmds.ArgString { + args[i] = arg } else { - in, err := os.Open(stringArgs[i]) + in, err := os.Open(arg) if err != nil { return nil, err } -- GitLab