| 27 | } |
| 28 | |
| 29 | func run(args []string) error { |
| 30 | flags := pflag.NewFlagSet("", pflag.ContinueOnError) |
| 31 | manPage := flags.BoolP("man-page", "", false, "Generate manual pages") |
| 32 | website := flags.BoolP("website", "", false, "Generate website pages") |
| 33 | dir := flags.StringP("doc-path", "", "", "Path directory where you want generate doc files") |
| 34 | help := flags.BoolP("help", "h", false, "Help about any command") |
| 35 | |
| 36 | if err := flags.Parse(args); err != nil { |
| 37 | return err |
| 38 | } |
| 39 | |
| 40 | if *help { |
| 41 | fmt.Fprintf(os.Stderr, "Usage of %s:\n\n%s", filepath.Base(args[0]), flags.FlagUsages()) |
| 42 | return nil |
| 43 | } |
| 44 | |
| 45 | if *dir == "" { |
| 46 | return fmt.Errorf("error: --doc-path not set") |
| 47 | } |
| 48 | |
| 49 | ios, _, _, _ := iostreams.Test() |
| 50 | rootCmd, _ := root.NewCmdRoot(&cmdutil.Factory{ |
| 51 | IOStreams: ios, |
| 52 | Browser: &browser{}, |
| 53 | Config: func() (gh.Config, error) { |
| 54 | return config.NewFromString(""), nil |
| 55 | }, |
| 56 | ExtensionManager: &em{}, |
| 57 | }, &telemetry.NoOpService{}, "", "") |
| 58 | rootCmd.InitDefaultHelpCmd() |
| 59 | |
| 60 | if err := os.MkdirAll(*dir, 0755); err != nil { |
| 61 | return err |
| 62 | } |
| 63 | |
| 64 | if *website { |
| 65 | if err := docs.GenMarkdownTreeCustom(rootCmd, *dir, filePrepender, linkHandler); err != nil { |
| 66 | return err |
| 67 | } |
| 68 | } |
| 69 | |
| 70 | if *manPage { |
| 71 | if err := docs.GenManTree(rootCmd, *dir); err != nil { |
| 72 | return err |
| 73 | } |
| 74 | } |
| 75 | |
| 76 | return nil |
| 77 | } |
| 78 | |
| 79 | func filePrepender(filename string) string { |
| 80 | return `--- |