diff --git a/doc/man_docs.go b/doc/man_docs.go index b9266c36..1f90c44f 100644 --- a/doc/man_docs.go +++ b/doc/man_docs.go @@ -30,8 +30,8 @@ import ( // GenManTree will generate a man page for this command and all descendants // in the directory given. The header may be nil. This function may not work -// correctly if your command names have - in them. If you have `cmd` with two -// subcmds, `sub` and `sub-third`. And `sub` has a subcommand called `third` +// correctly if your command names have `-` in them. If you have `cmd` with two +// subcmds, `sub` and `sub-third`, and `sub` has a subcommand called `third` // it is undefined which help output will be in the file `cmd-sub-third.1`. func GenManTree(cmd *cobra.Command, header *GenManHeader, dir string) error { return GenManTreeFromOpts(cmd, GenManTreeOptions{ diff --git a/doc/man_docs.md b/doc/man_docs.md index d568d9a0..3709160f 100644 --- a/doc/man_docs.md +++ b/doc/man_docs.md @@ -6,6 +6,8 @@ Generating man pages from a cobra command is incredibly easy. An example is as f package main import ( + "log" + "github.com/spf13/cobra" "github.com/spf13/cobra/doc" ) @@ -19,7 +21,10 @@ func main() { Title: "MINE", Section: "3", } - doc.GenManTree(cmd, header, "/tmp") + err := doc.GenManTree(cmd, header, "/tmp") + if err != nil { + log.Fatal(err) + } } ``` diff --git a/doc/md_docs.go b/doc/md_docs.go index 8d159c1d..408d2f74 100644 --- a/doc/md_docs.go +++ b/doc/md_docs.go @@ -52,10 +52,12 @@ func printOptions(w io.Writer, cmd *cobra.Command, name string) error { return nil } +// GenMarkdown creates markdown output. func GenMarkdown(cmd *cobra.Command, w io.Writer) error { return GenMarkdownCustom(cmd, w, func(s string) string { return s }) } +// GenMarkdownCustom creates custom markdown output. func GenMarkdownCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string) string) error { name := cmd.CommandPath() @@ -141,6 +143,12 @@ func GenMarkdownCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string) return nil } +// GenMarkdownTree will generate a markdown page for this command and all +// descendants in the directory given. The header may be nil. +// This function may not work correctly if your command names have `-` in them. +// If you have `cmd` with two subcmds, `sub` and `sub-third`, +// and `sub` has a subcommand called `third`, it is undefined which +// help output will be in the file `cmd-sub-third.1`. func GenMarkdownTree(cmd *cobra.Command, dir string) error { identity := func(s string) string { return s } emptyStr := func(s string) string { return "" } diff --git a/doc/md_docs.md b/doc/md_docs.md index beec3e0e..56ce9fe8 100644 --- a/doc/md_docs.md +++ b/doc/md_docs.md @@ -6,6 +6,8 @@ Generating man pages from a cobra command is incredibly easy. An example is as f package main import ( + "log" + "github.com/spf13/cobra" "github.com/spf13/cobra/doc" ) @@ -15,7 +17,10 @@ func main() { Use: "test", Short: "my test program", } - doc.GenMarkdownTree(cmd, "/tmp") + err := doc.GenMarkdownTree(cmd, "/tmp") + if err != nil { + log.Fatal(err) + } } ``` @@ -29,6 +34,7 @@ This program can actually generate docs for the kubectl command in the kubernete package main import ( + "log" "io/ioutil" "os" @@ -40,7 +46,10 @@ import ( func main() { kubectl := cmd.NewKubectlCommand(cmdutil.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard) - doc.GenMarkdownTree(kubectl, "./") + err := doc.GenMarkdownTree(kubectl, "./") + if err != nil { + log.Fatal(err) + } } ``` @@ -52,7 +61,10 @@ You may wish to have more control over the output, or only generate for a single ```go out := new(bytes.Buffer) - doc.GenMarkdown(cmd, out) + err := doc.GenMarkdown(cmd, out) + if err != nil { + log.Fatal(err) + } ``` This will write the markdown doc for ONLY "cmd" into the out, buffer. diff --git a/doc/yaml_docs.go b/doc/yaml_docs.go index ac8db89e..f5cd5a32 100644 --- a/doc/yaml_docs.go +++ b/doc/yaml_docs.go @@ -45,8 +45,8 @@ type cmdDoc struct { // GenYamlTree creates yaml structured ref files for this command and all descendants // in the directory given. This function may not work -// correctly if your command names have - in them. If you have `cmd` with two -// subcmds, `sub` and `sub-third`. And `sub` has a subcommand called `third` +// correctly if your command names have `-` in them. If you have `cmd` with two +// subcmds, `sub` and `sub-third`, and `sub` has a subcommand called `third` // it is undefined which help output will be in the file `cmd-sub-third.1`. func GenYamlTree(cmd *cobra.Command, dir string) error { identity := func(s string) string { return s } @@ -54,7 +54,7 @@ func GenYamlTree(cmd *cobra.Command, dir string) error { return GenYamlTreeCustom(cmd, dir, emptyStr, identity) } -// GenYamlTreeCustom creates yaml structured ref files +// GenYamlTreeCustom creates yaml structured ref files. func GenYamlTreeCustom(cmd *cobra.Command, dir string, filePrepender, linkHandler func(string) string) error { for _, c := range cmd.Commands() { if !c.IsAvailableCommand() || c.IsAdditionalHelpTopicCommand() { @@ -82,12 +82,12 @@ func GenYamlTreeCustom(cmd *cobra.Command, dir string, filePrepender, linkHandle return nil } -// GenYaml creates yaml output +// GenYaml creates yaml output. func GenYaml(cmd *cobra.Command, w io.Writer) error { return GenYamlCustom(cmd, w, func(s string) string { return s }) } -// GenYamlCustom creates custom yaml output +// GenYamlCustom creates custom yaml output. func GenYamlCustom(cmd *cobra.Command, w io.Writer, linkHandler func(string) string) error { yamlDoc := cmdDoc{} yamlDoc.Name = cmd.CommandPath() diff --git a/doc/yaml_docs.md b/doc/yaml_docs.md index 4d0c75a1..1a9b7c6a 100644 --- a/doc/yaml_docs.md +++ b/doc/yaml_docs.md @@ -6,6 +6,8 @@ Generating yaml files from a cobra command is incredibly easy. An example is as package main import ( + "log" + "github.com/spf13/cobra" "github.com/spf13/cobra/doc" ) @@ -15,7 +17,10 @@ func main() { Use: "test", Short: "my test program", } - doc.GenYamlTree(cmd, "/tmp") + err := doc.GenYamlTree(cmd, "/tmp") + if err != nil { + log.Fatal(err) + } } ``` @@ -30,6 +35,7 @@ package main import ( "io/ioutil" + "log" "os" "k8s.io/kubernetes/pkg/kubectl/cmd" @@ -40,7 +46,10 @@ import ( func main() { kubectl := cmd.NewKubectlCommand(cmdutil.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard) - doc.GenYamlTree(kubectl, "./") + err := doc.GenYamlTree(kubectl, "./") + if err != nil { + log.Fatal(err) + } } ```