@cryptotaxi247 / kubo / commits / 2c8fc8564

commands/cli: Made parser handle variadic arguments

Matt Bell committed Nov 2, 2014 at 21:46 UTC 2c8fc8564c193d70944f9119d19edf1605340275
1 file changed +8 -8
commands/cli/parse.go
+8 -8
@@ -108,19 +108,19 @@ func parseOptions(input []string) (map[string]interface{}, []string, error) {
108 // Note that the argument handling here is dumb, it does not do any error-checking.
109 // (Arguments are further processed when the request is passed to the command to run)
110 func parseArgs(stringArgs []string, cmd *cmds.Command) ([]interface{}, error) {
111 - args := make([]interface{}, len(cmd.Arguments))
111 + var argDef cmds.Argument
112 + args := make([]interface{}, len(stringArgs))
113
113 - for i, arg := range cmd.Arguments {
114 - // TODO: handle variadic args
115 - if i >= len(stringArgs) {
116 - break
114 + for i, arg := range stringArgs {
115 + if i < len(cmd.Arguments) {
116 + argDef = cmd.Arguments[i]
117 }
118
119 - if arg.Type == cmds.ArgString {
120 - args[i] = stringArgs[i]
119 + if argDef.Type == cmds.ArgString {
120 + args[i] = arg
121
122 } else {
123 - in, err := os.Open(stringArgs[i])
123 + in, err := os.Open(arg)
124 if err != nil {
125 return nil, err
126 }