From e392f3204db0445f1f4ad47448b04d8c8ad04c2a Mon Sep 17 00:00:00 2001 From: John McBride Date: Wed, 29 Apr 2020 11:15:55 -0600 Subject: [PATCH] Man pages won't have auto gen tag when option is disabled (#1104) * Man pages wont have auto gen tag when option is disabled - this addresses #741 * Add documentation for doc generation and a changelog --- CHANGELOG.md | 22 ++++++++++++++++++++++ README.md | 6 +----- doc/README.md | 12 ++++++++++++ doc/man_docs.go | 6 +++--- doc/man_docs_test.go | 2 ++ 5 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 doc/README.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..742d6d6e2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,22 @@ +# Cobra Changelog + +## Pending +* Fix man page doc generation - no auto generated tag when `cmd.DisableAutoGenTag = true` @jpmcb + +## v1.0.0 +Announcing v1.0.0 of Cobra. 🎉 +**Notable Changes** +* Fish completion (including support for Go custom completion) @marckhouzam +* API (urgent): Rename BashCompDirectives to ShellCompDirectives @marckhouzam +* Remove/replace SetOutput on Command - deprecated @jpmcb +* add support for autolabel stale PR @xchapter7x +* Add Labeler Actions @xchapter7x +* Custom completions coded in Go (instead of Bash) @marckhouzam +* Partial Revert of #922 @jharshman +* Add Makefile to project @jharshman +* Correct documentation for InOrStdin @desponda +* Apply formatting to templates @jharshman +* Revert change so help is printed on stdout again @marckhouzam +* Update md2man to v2.0.0 @pdf +* update viper to v1.4.0 @umarcor +* Update cmd/root.go example in README.md @jharshman diff --git a/README.md b/README.md index a3713660a..a932dd740 100644 --- a/README.md +++ b/README.md @@ -718,11 +718,7 @@ Run 'kubectl help' for usage. ## Generating documentation for your command -Cobra can generate documentation based on subcommands, flags, etc. in the following formats: - -- [Markdown](doc/md_docs.md) -- [ReStructured Text](doc/rest_docs.md) -- [Man Page](doc/man_docs.md) +Cobra can generate documentation based on subcommands, flags, etc. Read more about it in the [docs generation documentation](doc/README.md). ## Generating bash completions diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 000000000..6ea4eb662 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,12 @@ +# Documentation generation + +- [Man page docs](./man_docs.md) +- [Markdown docs](./md_docs.md) +- [Rest docs](./rest_docs.md) +- [Yaml docs](./yaml_docs.md) + +## Options +### `DisableAutoGenTag` +You may set `cmd.DisableAutoGenTag = true` +to _entirely_ remove the auto generated string "Auto generated by spf13/cobra..." +from any documentation source. diff --git a/doc/man_docs.go b/doc/man_docs.go index 8c7fba44a..b29a67786 100644 --- a/doc/man_docs.go +++ b/doc/man_docs.go @@ -105,7 +105,7 @@ func GenMan(cmd *cobra.Command, header *GenManHeader, w io.Writer) error { if header == nil { header = &GenManHeader{} } - if err := fillHeader(header, cmd.CommandPath()); err != nil { + if err := fillHeader(header, cmd.CommandPath(), cmd.DisableAutoGenTag); err != nil { return err } @@ -114,7 +114,7 @@ func GenMan(cmd *cobra.Command, header *GenManHeader, w io.Writer) error { return err } -func fillHeader(header *GenManHeader, name string) error { +func fillHeader(header *GenManHeader, name string, disableAutoGen bool) error { if header.Title == "" { header.Title = strings.ToUpper(strings.Replace(name, " ", "\\-", -1)) } @@ -133,7 +133,7 @@ func fillHeader(header *GenManHeader, name string) error { header.Date = &now } header.date = (*header.Date).Format("Jan 2006") - if header.Source == "" { + if header.Source == "" && !disableAutoGen { header.Source = "Auto generated by spf13/cobra" } return nil diff --git a/doc/man_docs_test.go b/doc/man_docs_test.go index 2c400f5df..ee9b87535 100644 --- a/doc/man_docs_test.go +++ b/doc/man_docs_test.go @@ -101,6 +101,8 @@ func TestGenManNoGenTag(t *testing.T) { unexpected := translate("#HISTORY") checkStringOmits(t, output, unexpected) + unexpected = translate("Auto generated by spf13/cobra") + checkStringOmits(t, output, unexpected) } func TestGenManSeeAlso(t *testing.T) {