Check for disable auto gen tag on parents commands before filling man headers

This commit is contained in:
David Martin 2021-02-11 18:09:42 +01:00
parent 893ebf6e36
commit 0bf8e9a869
2 changed files with 34 additions and 0 deletions

View file

@ -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
}

View file

@ -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