From 0d6dfe97f7c1465ea97024e02f2445495d1d69b9 Mon Sep 17 00:00:00 2001 From: comp500 Date: Wed, 18 Sep 2019 23:06:49 +0100 Subject: [PATCH] Add markdown command --- go.sum | 2 ++ utils/markdown.go | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 utils/markdown.go diff --git a/go.sum b/go.sum index a5ac337..2d52b47 100644 --- a/go.sum +++ b/go.sum @@ -19,6 +19,7 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= @@ -99,6 +100,7 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/skratchdot/open-golang v0.0.0-20190402232053-79abb63cd66e h1:VAzdS5Nw68fbf5RZ8RDVlUvPXNU6Z3jtPCK/qvm4FoQ= diff --git a/utils/markdown.go b/utils/markdown.go new file mode 100644 index 0000000..9717a2b --- /dev/null +++ b/utils/markdown.go @@ -0,0 +1,39 @@ +package utils + +import ( + "fmt" + "os" + + "github.com/spf13/cobra" + "github.com/spf13/cobra/doc" + "github.com/spf13/viper" +) + +// markdownCmd represents the markdown command +var markdownCmd = &cobra.Command{ + Use: "markdown", + Short: "Generate markdown documentation (that you might be reading right now!!)", + Aliases: []string{"md"}, + Args: cobra.NoArgs, + Run: func(cmd *cobra.Command, args []string) { + outDir := viper.GetString("utils.markdown.dir") + err := os.MkdirAll(outDir, os.ModePerm) + if err != nil { + fmt.Printf("Error creating directory: %s\n", err) + os.Exit(1) + } + err = doc.GenMarkdownTree(cmd.Root(), outDir) + if err != nil { + fmt.Printf("Error generating markdown: %s\n", err) + os.Exit(1) + } + fmt.Println("Generated markdown successfully!") + }, +} + +func init() { + utilsCmd.AddCommand(markdownCmd) + + markdownCmd.Flags().String("dir", ".", "The destination directory to save docs in") + viper.BindPFlag("utils.markdown.dir", markdownCmd.Flags().Lookup("dir")) +}