mirror of https://github.com/k3s-io/k3s.git
Use spf13/cobra md generation instead of doing it outselves
parent
ef815836d2
commit
263dc981db
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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}"
|
||||
|
|
Loading…
Reference in New Issue