mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Use spf13/cobra md generation instead of doing it outselves
This commit is contained in:
parent
ef815836d2
commit
263dc981db
@ -17,97 +17,16 @@ limitations under the License.
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd"
|
||||||
cmdutil "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
|
||||||
"github.com/spf13/cobra"
|
"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() {
|
func main() {
|
||||||
// use os.Args instead of "flags" because "flags" will mess up the man pages!
|
// use os.Args instead of "flags" because "flags" will mess up the man pages!
|
||||||
docsDir := "docs/man/man1/"
|
docsDir := "docs/man/man1/"
|
||||||
@ -141,8 +60,5 @@ func main() {
|
|||||||
os.Setenv("HOME", "/home/username")
|
os.Setenv("HOME", "/home/username")
|
||||||
//TODO os.Stdin should really be something like ioutil.Discard, but a Reader
|
//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 := cmd.NewKubectlCommand(cmdutil.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard)
|
||||||
genMarkdown(kubectl, "", docsDir)
|
cobra.GenMarkdownTree(kubectl, docsDir)
|
||||||
for _, c := range kubectl.Commands() {
|
|
||||||
genMarkdown(c, "kubectl", docsDir)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ echo "diffing ${DOCROOT} against generated output from ${genman}"
|
|||||||
${genman} "${TMP_DOCROOT}/man/man1/"
|
${genman} "${TMP_DOCROOT}/man/man1/"
|
||||||
${gendocs} "${TMP_DOCROOT}"
|
${gendocs} "${TMP_DOCROOT}"
|
||||||
set +e
|
set +e
|
||||||
diff -Naupr "${DOCROOT}" "${TMP_DOCROOT}"
|
diff -Naupr -I 'Auto generated by' "${DOCROOT}" "${TMP_DOCROOT}"
|
||||||
ret=$?
|
ret=$?
|
||||||
set -e
|
set -e
|
||||||
rm -rf "${TMP_DOCROOT}"
|
rm -rf "${TMP_DOCROOT}"
|
||||||
|
Loading…
Reference in New Issue
Block a user