diff --git a/command.go b/command.go index daa58c85e3..dda2f49a0a 100644 --- a/command.go +++ b/command.go @@ -241,7 +241,7 @@ func (c *Command) startApp(ctx *Context) error { app.HideHelpCommand = c.HideHelpCommand app.Version = ctx.App.Version - app.HideVersion = ctx.App.HideVersion + app.HideVersion = true app.Compiled = ctx.App.Compiled app.Writer = ctx.App.Writer app.ErrWriter = ctx.App.ErrWriter diff --git a/command_test.go b/command_test.go index 765081ea1f..6add442865 100644 --- a/command_test.go +++ b/command_test.go @@ -377,3 +377,48 @@ func TestCommand_Run_CustomShellCompleteAcceptsMalformedFlags(t *testing.T) { } } + +func TestCommand_NoVersionFlagOnCommands(t *testing.T) { + app := &App{ + Version: "some version", + Commands: []*Command{ + { + Name: "bar", + Usage: "this is for testing", + Subcommands: []*Command{{}}, // some subcommand + HideHelp: true, + Action: func(c *Context) error { + if len(c.App.VisibleFlags()) != 0 { + t.Fatal("unexpected flag on command") + } + return nil + }, + }, + }, + } + + err := app.Run([]string{"foo", "bar"}) + expect(t, err, nil) +} + +func TestCommand_CanAddVFlagOnCommands(t *testing.T) { + app := &App{ + Version: "some version", + Writer: ioutil.Discard, + Commands: []*Command{ + { + Name: "bar", + Usage: "this is for testing", + Subcommands: []*Command{{}}, // some subcommand + Flags: []Flag{ + &BoolFlag{ + Name: "v", + }, + }, + }, + }, + } + + err := app.Run([]string{"foo", "bar"}) + expect(t, err, nil) +}