diff --git a/cmd/gendocs/gen_kubectl_docs.go b/cmd/gendocs/gen_kubectl_docs.go index 64b3e545db..d345d550c5 100644 --- a/cmd/gendocs/gen_kubectl_docs.go +++ b/cmd/gendocs/gen_kubectl_docs.go @@ -17,97 +17,16 @@ limitations under the License. package main import ( - "bytes" "fmt" "io/ioutil" "os" "path/filepath" - "strings" "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd" cmdutil "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util" "github.com/spf13/cobra" ) -func printOptions(out *bytes.Buffer, command *cobra.Command, name string) { - flags := command.NonInheritedFlags() - flags.SetOutput(out) - if flags.HasFlags() { - fmt.Fprintf(out, "### Options\n\n```\n") - flags.PrintDefaults() - fmt.Fprintf(out, "```\n\n") - } - - parentFlags := command.InheritedFlags() - parentFlags.SetOutput(out) - if parentFlags.HasFlags() { - fmt.Fprintf(out, "### Options inherrited from parent commands\n\n```\n") - parentFlags.PrintDefaults() - fmt.Fprintf(out, "```\n\n") - } -} - -func genMarkdown(command *cobra.Command, parent, docsDir string) { - dparent := strings.Replace(parent, " ", "-", -1) - name := command.Name() - dname := name - if len(parent) > 0 { - dname = dparent + "-" + name - name = parent + " " + name - } - - out := new(bytes.Buffer) - short := command.Short - long := command.Long - if len(long) == 0 { - long = short - } - - fmt.Fprintf(out, "## %s\n\n", name) - fmt.Fprintf(out, "%s\n\n", short) - fmt.Fprintf(out, "### Synopsis\n\n") - fmt.Fprintf(out, "\n%s\n\n", long) - - if command.Runnable() { - fmt.Fprintf(out, "```\n%s\n```\n\n", command.UseLine()) - } - - if len(command.Example) > 0 { - fmt.Fprintf(out, "### Examples\n\n") - fmt.Fprintf(out, "```\n%s\n```\n\n", command.Example) - } - - printOptions(out, command, name) - - if len(command.Commands()) > 0 || len(parent) > 0 { - fmt.Fprintf(out, "### SEE ALSO\n") - if len(parent) > 0 { - link := dparent + ".md" - fmt.Fprintf(out, "* [%s](%s)\n", dparent, link) - } - for _, c := range command.Commands() { - child := dname + "-" + c.Name() - link := child + ".md" - fmt.Fprintf(out, "* [%s](%s)\n", child, link) - genMarkdown(c, name, docsDir) - } - fmt.Fprintf(out, "\n") - } - - filename := docsDir + dname + ".md" - outFile, err := os.Create(filename) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - defer outFile.Close() - _, err = outFile.Write(out.Bytes()) - if err != nil { - fmt.Println(err) - os.Exit(1) - } -} - func main() { // use os.Args instead of "flags" because "flags" will mess up the man pages! docsDir := "docs/man/man1/" @@ -141,8 +60,5 @@ func main() { os.Setenv("HOME", "/home/username") //TODO os.Stdin should really be something like ioutil.Discard, but a Reader kubectl := cmd.NewKubectlCommand(cmdutil.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard) - genMarkdown(kubectl, "", docsDir) - for _, c := range kubectl.Commands() { - genMarkdown(c, "kubectl", docsDir) - } + cobra.GenMarkdownTree(kubectl, docsDir) } diff --git a/hack/verify-gendocs.sh b/hack/verify-gendocs.sh index a11e8a458c..33ba6babf6 100755 --- a/hack/verify-gendocs.sh +++ b/hack/verify-gendocs.sh @@ -98,7 +98,7 @@ echo "diffing ${DOCROOT} against generated output from ${genman}" ${genman} "${TMP_DOCROOT}/man/man1/" ${gendocs} "${TMP_DOCROOT}" set +e -diff -Naupr "${DOCROOT}" "${TMP_DOCROOT}" +diff -Naupr -I 'Auto generated by' "${DOCROOT}" "${TMP_DOCROOT}" ret=$? set -e rm -rf "${TMP_DOCROOT}"