diff --git a/doc/man_docs.go b/doc/man_docs.go index 916e3614..f148c454 100644 --- a/doc/man_docs.go +++ b/doc/man_docs.go @@ -105,6 +105,14 @@ func GenMan(cmd *cobra.Command, header *GenManHeader, w io.Writer) error { if header == nil { header = &GenManHeader{} } + + if cmd.HasParent() { + cmd.VisitParents(func(c *cobra.Command) { + if c.DisableAutoGenTag { + cmd.DisableAutoGenTag = c.DisableAutoGenTag + } + }) + } if err := fillHeader(header, cmd.CommandPath(), cmd.DisableAutoGenTag); err != nil { return err } diff --git a/doc/man_docs_test.go b/doc/man_docs_test.go index aa3f5f2a..ca35faad 100644 --- a/doc/man_docs_test.go +++ b/doc/man_docs_test.go @@ -111,6 +111,32 @@ func TestGenManNoGenTag(t *testing.T) { checkStringOmits(t, output, unexpected) } +func TestGenManNoGenTagWithDisabledParent(t *testing.T) { + // We set the flag on a parent to check it is used in its descendance + rootCmd.DisableAutoGenTag = true + defer func() { + echoCmd.DisableAutoGenTag = false + rootCmd.DisableAutoGenTag = false + }() + + header := &GenManHeader{ + Title: "Project", + Section: "2", + } + + // We generate on a subcommand so we have both subcommands and parents + buf := new(bytes.Buffer) + if err := GenMan(echoCmd, header, buf); err != nil { + t.Fatal(err) + } + output := buf.String() + + unexpected := translate("#HISTORY") + checkStringOmits(t, output, unexpected) + unexpected = translate("Auto generated by spf13/cobra") + checkStringOmits(t, output, unexpected) +} + func TestGenManSeeAlso(t *testing.T) { rootCmd := &cobra.Command{Use: "root", Run: emptyRun} aCmd := &cobra.Command{Use: "aaa", Run: emptyRun, Hidden: true} // #229