diff --git a/command.go b/command.go index 7d34138..8f6580a 100644 --- a/command.go +++ b/command.go @@ -735,6 +735,7 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { } func (c *Command) initHelpFlag() { + c.mergePersistentFlags() if c.Flags().Lookup("help") == nil { c.Flags().BoolP("help", "h", false, "help for "+c.Name()) } diff --git a/command_test.go b/command_test.go index b8354ec..050e608 100644 --- a/command_test.go +++ b/command_test.go @@ -136,6 +136,21 @@ func Test_DisableFlagParsing(t *testing.T) { } } +func TestInitHelpFlagMergesFlags(t *testing.T) { + usage := "custom flag" + baseCmd := Command{Use: "testcmd"} + baseCmd.PersistentFlags().Bool("help", false, usage) + cmd := Command{Use: "do"} + baseCmd.AddCommand(&cmd) + + cmd.initHelpFlag() + actual := cmd.Flags().Lookup("help").Usage + if actual != usage { + t.Fatalf("Expected the help flag from the base command with usage '%s', " + + "but got the default with usage '%s'", usage, actual) + } +} + func TestCommandsAreSorted(t *testing.T) { EnableCommandSorting = true