Provide the length of Args when a -- is found in commandline
This allows a program to know what args came before the -- and what args came after.
This commit is contained in:
parent
4b76e97cd6
commit
edde52e321
@ -416,8 +416,11 @@ func TestGrandChildSameName(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFlagLong(t *testing.T) {
|
func TestFlagLong(t *testing.T) {
|
||||||
noRRSetupTest("echo --intone=13 something here")
|
noRRSetupTest("echo --intone=13 something -- here")
|
||||||
|
|
||||||
|
if cmdEcho.ArgsLenAtDash() != 1 {
|
||||||
|
t.Errorf("expected argsLenAtDash: %d but got %d", 1, cmdRootNoRun.ArgsLenAtDash())
|
||||||
|
}
|
||||||
if strings.Join(te, " ") != "something here" {
|
if strings.Join(te, " ") != "something here" {
|
||||||
t.Errorf("flags didn't leave proper args remaining..%s given", te)
|
t.Errorf("flags didn't leave proper args remaining..%s given", te)
|
||||||
}
|
}
|
||||||
@ -430,8 +433,11 @@ func TestFlagLong(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFlagShort(t *testing.T) {
|
func TestFlagShort(t *testing.T) {
|
||||||
noRRSetupTest("echo -i13 something here")
|
noRRSetupTest("echo -i13 -- something here")
|
||||||
|
|
||||||
|
if cmdEcho.ArgsLenAtDash() != 0 {
|
||||||
|
t.Errorf("expected argsLenAtDash: %d but got %d", 0, cmdRootNoRun.ArgsLenAtDash())
|
||||||
|
}
|
||||||
if strings.Join(te, " ") != "something here" {
|
if strings.Join(te, " ") != "something here" {
|
||||||
t.Errorf("flags didn't leave proper args remaining..%s given", te)
|
t.Errorf("flags didn't leave proper args remaining..%s given", te)
|
||||||
}
|
}
|
||||||
|
@ -470,6 +470,10 @@ func (c *Command) Root() *Command {
|
|||||||
return findRoot(c)
|
return findRoot(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *Command) ArgsLenAtDash() int {
|
||||||
|
return c.Flags().ArgsLenAtDash()
|
||||||
|
}
|
||||||
|
|
||||||
func (c *Command) execute(a []string) (err error) {
|
func (c *Command) execute(a []string) (err error) {
|
||||||
if c == nil {
|
if c == nil {
|
||||||
return fmt.Errorf("Called Execute() on a nil Command")
|
return fmt.Errorf("Called Execute() on a nil Command")
|
||||||
|
Loading…
Reference in New Issue
Block a user