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