diff --git a/commands/cli/parse.go b/commands/cli/parse.go index a5a0e07159cb7d62fe672d79285bd314186945f4..9858a997e46f7d313c7800a6a9894b1b81d439aa 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-- }