From a69ddbb9655444c63d932d11f91d05eef1265ae5 Mon Sep 17 00:00:00 2001
From: Matt Bell <mappum@gmail.com>
Date: Wed, 19 Nov 2014 18:29:56 -0800
Subject: [PATCH] commands/cli: Fixed parse bug when optional argument is
 defined first

---
 commands/cli/parse.go | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/commands/cli/parse.go b/commands/cli/parse.go
index a5a0e0715..9858a997e 100644
--- a/commands/cli/parse.go
+++ b/commands/cli/parse.go
@@ -182,9 +182,11 @@ func parseArgs(inputs []string, stdin *os.File, argDefs []cmds.Argument, recursi
 		argDef := getArgDef(argDefIndex, argDefs)
 
 		// skip optional argument definitions if there aren't sufficient remaining inputs
-		if numInputs-i <= numRequired && !argDef.Required {
-			continue
-		} else if argDef.Required {
+		for numInputs-i <= numRequired && !argDef.Required {
+			argDefIndex++
+			argDef = getArgDef(argDefIndex, argDefs)
+		}
+		if argDef.Required {
 			numRequired--
 		}
 
-- 
GitLab