diff --git a/Makefile b/Makefile index 9dc9aae50..87ec9d8d5 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ site: site-docs: site git -C site pull git -C site rm 'manual/gh*.md' 2>/dev/null || true - go run ./cmd/gen-docs site/manual + go run ./cmd/gen-docs --website --doc-path site/manual for f in site/manual/gh*.md; do sed -i.bak -e '/^### SEE ALSO/,$$d' "$$f"; done rm -f site/manual/*.bak git -C site add 'manual/gh*.md' @@ -51,4 +51,4 @@ manpage: .PHONY: manpages manpages: manpage - go run ./cmd/gen-docs ./manpage + go run ./cmd/gen-docs --man-page --doc-path ./manpage diff --git a/cmd/gen-docs/main.go b/cmd/gen-docs/main.go index 82efa58f9..9327da20a 100644 --- a/cmd/gen-docs/main.go +++ b/cmd/gen-docs/main.go @@ -7,27 +7,53 @@ import ( "github.com/cli/cli/command" "github.com/spf13/cobra/doc" + "github.com/spf13/pflag" ) func main() { - if len(os.Args) < 2 { - fatal("Usage: gen-docs ") - } - dir := os.Args[1] - err := os.MkdirAll(dir, 0755) + var flagError pflag.ErrorHandling + docCmd := pflag.NewFlagSet("", flagError) + var manPage = docCmd.BoolP("man-page", "", false, "Generate manual pages") + var website = docCmd.BoolP("website", "", false, "Generate website pages") + var dir = docCmd.StringP("doc-path", "", "", "Path directory where you want generate doc files") + var help = docCmd.BoolP("help", "h", false, "Help about any command") + + if err := docCmd.Parse(os.Args); err != nil { + os.Exit(1) + } + + if *help { + _, err := fmt.Fprintf(os.Stderr, "Usage of %s:\n\n%s", os.Args[0], docCmd.FlagUsages()) + if err != nil { + fatal(err) + } + os.Exit(1) + } + + if(*dir == "") { + fatal("no dir set") + } + + + err := os.MkdirAll(*dir, 0755) if err != nil { fatal(err) } - err = doc.GenMarkdownTreeCustom(command.RootCmd, dir, filePrepender, linkHandler) - if err != nil { - fatal(err) + if *website { + err = doc.GenMarkdownTreeCustom(command.RootCmd, *dir, filePrepender, linkHandler) + if err != nil { + fatal(err) + } } - err = doc.GenManTree(command.RootCmd, nil, dir) - if err != nil { - fatal(err) + + if *manPage { + err = doc.GenManTree(command.RootCmd, nil, *dir) + if err != nil { + fatal(err) + } } }