func main() { // use os.Args instead of "flags" because "flags" will mess up the man pages! path := "docs/man/man1" if len(os.Args) == 2 { path = os.Args[1] } else if len(os.Args) > 2 { fmt.Fprintf(os.Stderr, "usage: %s [output directory]\n", os.Args[0]) os.Exit(1) } outDir, err := genutils.OutDir(path) if err != nil { fmt.Fprintf(os.Stderr, "failed to get output directory: %v\n", err) os.Exit(1) } // Set environment variables used by kubectl so the output is consistent, // regardless of where we run. 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, "", outDir) for _, c := range kubectl.Commands() { genMarkdown(c, "kubectl", outDir) } }
func genCmdMan(cmdName string, cmd *cobra.Command) { // use os.Args instead of "flags" because "flags" will mess up the man pages! path := "docs/man/" + cmdName if len(os.Args) == 3 { path = os.Args[1] } else if len(os.Args) > 3 { fmt.Fprintf(os.Stderr, "usage: %s [output directory]\n", os.Args[0]) os.Exit(1) } outDir, err := genutils.OutDir(path) if err != nil { fmt.Fprintf(os.Stderr, "failed to get output directory: %v\n", err) os.Exit(1) } // Set environment variables used by openshift so the output is consistent, // regardless of where we run. os.Setenv("HOME", "/home/username") // TODO os.Stdin should really be something like ioutil.Discard, but a Reader genMarkdown(cmd, "", outDir) for _, c := range cmd.Commands() { genMarkdown(c, cmdName, outDir) } }
// Note: We have a separate binary for generating federation docs and kube docs because of the way api groups are api.Registry. // If we import both kube-apiserver and federation-apiserver in the same binary then api groups from both kube and federation will get registered in both the apiservers // and hence will produce incorrect flag values. // We can potentially merge cmd/kubegendocs and this when we have fixed that problem. func main() { // use os.Args instead of "flags" because "flags" will mess up the man pages! path := "" module := "" if len(os.Args) == 3 { path = os.Args[1] module = os.Args[2] } else { fmt.Fprintf(os.Stderr, "usage: %s [output directory] [module] \n", os.Args[0]) os.Exit(1) } outDir, err := genutils.OutDir(path) if err != nil { fmt.Fprintf(os.Stderr, "failed to get output directory: %v\n", err) os.Exit(1) } switch module { case "federation-apiserver": // generate docs for federated-apiserver apiserver := fedapiservapp.NewAPIServerCommand() doc.GenMarkdownTree(apiserver, outDir) case "federation-controller-manager": // generate docs for kube-controller-manager controllermanager := fedcmapp.NewControllerManagerCommand() doc.GenMarkdownTree(controllermanager, outDir) default: fmt.Fprintf(os.Stderr, "Module %s is not supported", module) os.Exit(1) } }
func main() { // use os.Args instead of "flags" because "flags" will mess up the man pages! path := "" module := "" if len(os.Args) == 3 { path = os.Args[1] module = os.Args[2] } else { fmt.Fprintf(os.Stderr, "usage: %s [output directory] [module] \n", os.Args[0]) os.Exit(1) } outDir, err := genutils.OutDir(path) if err != nil { fmt.Fprintf(os.Stderr, "failed to get output directory: %v\n", err) os.Exit(1) } switch module { case "kube-apiserver": // generate docs for kube-apiserver apiserver := apiservapp.NewAPIServerCommand() cobra.GenMarkdownTree(apiserver, outDir) case "kube-controller-manager": // generate docs for kube-controller-manager controllermanager := cmapp.NewControllerManagerCommand() cobra.GenMarkdownTree(controllermanager, outDir) case "kube-proxy": // generate docs for kube-proxy proxy := proxyapp.NewProxyCommand() cobra.GenMarkdownTree(proxy, outDir) case "kube-scheduler": // generate docs for kube-scheduler scheduler := schapp.NewSchedulerCommand() cobra.GenMarkdownTree(scheduler, outDir) case "kubelet": // generate docs for kubelet kubelet := kubeletapp.NewKubeletCommand() cobra.GenMarkdownTree(kubelet, outDir) default: fmt.Fprintf(os.Stderr, "Module %s is not supported", module) os.Exit(1) } }
func main() { // use os.Args instead of "flags" because "flags" will mess up the man pages! path := "contrib/completions/bash/" if len(os.Args) == 2 { path = os.Args[1] } else if len(os.Args) > 2 { fmt.Fprintf(os.Stderr, "usage: %s [output directory]\n", os.Args[0]) os.Exit(1) } outDir, err := genutils.OutDir(path) if err != nil { fmt.Fprintf(os.Stderr, "failed to get output directory: %v\n", err) os.Exit(1) } outFile := outDir + "kubectl" //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) kubectl.GenBashCompletionFile(outFile) }
func main() { // use os.Args instead of "flags" because "flags" will mess up the man pages! path := "docs/man/man1" module := "" if len(os.Args) == 3 { path = os.Args[1] module = os.Args[2] } else { fmt.Fprintf(os.Stderr, "usage: %s [output directory] [module] \n", os.Args[0]) os.Exit(1) } outDir, err := genutils.OutDir(path) if err != nil { fmt.Fprintf(os.Stderr, "failed to get output directory: %v\n", err) os.Exit(1) } // Set environment variables used by command so the output is consistent, // regardless of where we run. os.Setenv("HOME", "/home/username") switch module { case "kube-apiserver": // generate manpage for kube-apiserver apiserver := apiservapp.NewAPIServerCommand() genMarkdown(apiserver, "", outDir) for _, c := range apiserver.Commands() { genMarkdown(c, "kube-apiserver", outDir) } case "kube-controller-manager": // generate manpage for kube-controller-manager controllermanager := cmapp.NewControllerManagerCommand() genMarkdown(controllermanager, "", outDir) for _, c := range controllermanager.Commands() { genMarkdown(c, "kube-controller-manager", outDir) } case "kube-proxy": // generate manpage for kube-proxy proxy := proxyapp.NewProxyCommand() genMarkdown(proxy, "", outDir) for _, c := range proxy.Commands() { genMarkdown(c, "kube-proxy", outDir) } case "kube-scheduler": // generate manpage for kube-scheduler scheduler := schapp.NewSchedulerCommand() genMarkdown(scheduler, "", outDir) for _, c := range scheduler.Commands() { genMarkdown(c, "kube-scheduler", outDir) } case "kubelet": // generate manpage for kubelet kubelet := kubeletapp.NewKubeletCommand() genMarkdown(kubelet, "", outDir) for _, c := range kubelet.Commands() { genMarkdown(c, "kubelet", outDir) } case "kubectl": // generate manpage for kubectl // TODO os.Stdin should really be something like ioutil.Discard, but a Reader kubectl := kubectlcmd.NewKubectlCommand(kubectlcmdutil.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard) genMarkdown(kubectl, "", outDir) for _, c := range kubectl.Commands() { genMarkdown(c, "kubectl", outDir) } default: fmt.Fprintf(os.Stderr, "Module %s is not supported", module) os.Exit(1) } }