checkpoint
This commit is contained in:
parent
406a1c31b0
commit
2071bcfb83
21
command.go
21
command.go
@ -214,14 +214,18 @@ func (c *Command) useShortOptionHandling() bool {
|
|||||||
return c.UseShortOptionHandling
|
return c.UseShortOptionHandling
|
||||||
}
|
}
|
||||||
|
|
||||||
// reorderArgs moves all flags (reorderedFlags) before arguments (remainingArgs)
|
// reorderArgs moves all flags (via reorderedArgs) before the rest of
|
||||||
// as this is what flag expects.
|
// the arguments (remainingArgs) as this is what flag expects.
|
||||||
func reorderArgs(commandFlags []Flag, args []string) []string {
|
func reorderArgs(commandFlags []Flag, args []string) []string {
|
||||||
var remainingArgs []string
|
var remainingArgs []string
|
||||||
var reorderedFlags []string
|
var reorderedArgs []string
|
||||||
|
|
||||||
readFlagValue := false
|
readFlagValue := false
|
||||||
for i, arg := range args {
|
for i, arg := range args {
|
||||||
|
|
||||||
|
// dont reorder any args after a --
|
||||||
|
// read about -- here:
|
||||||
|
// https://unix.stackexchange.com/questions/11376/what-does-double-dash-mean-also-known-as-bare-double-dash
|
||||||
if arg == "--" {
|
if arg == "--" {
|
||||||
remainingArgs = append(remainingArgs, args[i:]...)
|
remainingArgs = append(remainingArgs, args[i:]...)
|
||||||
break
|
break
|
||||||
@ -229,21 +233,22 @@ func reorderArgs(commandFlags []Flag, args []string) []string {
|
|||||||
|
|
||||||
if readFlagValue && !strings.HasPrefix(arg, "-") && !strings.HasPrefix(arg, "--") {
|
if readFlagValue && !strings.HasPrefix(arg, "-") && !strings.HasPrefix(arg, "--") {
|
||||||
readFlagValue = false
|
readFlagValue = false
|
||||||
reorderedFlags = append(reorderedFlags, arg)
|
reorderedArgs = append(reorderedArgs, arg)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
readFlagValue = false
|
readFlagValue = false
|
||||||
|
|
||||||
if arg != "-" && strings.HasPrefix(arg, "-") {
|
if arg != "-" && strings.HasPrefix(arg, "-") {
|
||||||
reorderedFlags = append(reorderedFlags, arg)
|
reorderedArgs = append(reorderedArgs, arg)
|
||||||
|
|
||||||
readFlagValue = !strings.Contains(arg, "=")
|
readFlagValue = !strings.Contains(arg, "=")
|
||||||
} else {
|
continue
|
||||||
remainingArgs = append(remainingArgs, arg)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
remainingArgs = append(remainingArgs, arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
return append(reorderedFlags, remainingArgs...)
|
return append(reorderedArgs, remainingArgs...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Names returns the names including short names and aliases.
|
// Names returns the names including short names and aliases.
|
||||||
|
Loading…
Reference in New Issue
Block a user