(args []string)
| 78 | } |
| 79 | |
| 80 | func run(args []string) error { |
| 81 | flags := pflag.NewFlagSet("", pflag.ContinueOnError) |
| 82 | manPage := flags.BoolP("man-page", "", false, "Generate manual pages") |
| 83 | website := flags.BoolP("website", "", false, "Generate website pages") |
| 84 | dir := flags.StringP("doc-path", "", "", "Path directory where you want generate doc files") |
| 85 | relativeBasePath := flags.StringP("relative-base-path", "", "", "Relative base path for generating index links") |
| 86 | help := flags.BoolP("help", "h", false, "Help about any command") |
| 87 | |
| 88 | if err := flags.Parse(args); err != nil { |
| 89 | return err |
| 90 | } |
| 91 | |
| 92 | if *help { |
| 93 | fmt.Fprintf(os.Stderr, "Usage of %s:\n\n%s", filepath.Base(args[0]), flags.FlagUsages()) |
| 94 | return nil |
| 95 | } |
| 96 | |
| 97 | if *dir == "" { |
| 98 | return fmt.Errorf("error: --doc-path not set") |
| 99 | } |
| 100 | |
| 101 | askProvider := question.NewAskProvider(survey.AskOne) |
| 102 | clientFactory := apiclient.NewStubClientFactory() |
| 103 | s := spinner.New(spinner.CharSets[11], 100*time.Millisecond, spinner.WithColor("cyan")) |
| 104 | buildVersion := strings.TrimSpace(version.Version) |
| 105 | viper := viper.GetViper() |
| 106 | c := config.New(viper) |
| 107 | f := factory.New(clientFactory, askProvider, s, buildVersion, c, servicemessages.NewProvider(servicemessages.NewOutputPrinter(os.Stdout, os.Stderr))) |
| 108 | |
| 109 | cmd := root.NewCmdRoot(f, clientFactory, askProvider) |
| 110 | cmd.DisableAutoGenTag = true |
| 111 | cmd.InitDefaultHelpCmd() |
| 112 | |
| 113 | if strings.HasPrefix(*dir, "~/") { |
| 114 | usr, _ := user.Current() |
| 115 | home := usr.HomeDir |
| 116 | *dir = filepath.Join(home, (*dir)[2:]) |
| 117 | } |
| 118 | |
| 119 | if err := os.MkdirAll(*dir, 0755); err != nil { |
| 120 | return err |
| 121 | } |
| 122 | |
| 123 | if *website { |
| 124 | position := 0 |
| 125 | pageCollection := &PageCollection{Pages: &Pages{}} |
| 126 | if err := GenMarkdownTreeCustom(cmd, *dir, *relativeBasePath, &position, pageCollection); err != nil { |
| 127 | return err |
| 128 | } |
| 129 | |
| 130 | filename := filepath.Join(*dir, "index.md") |
| 131 | f, err := os.Create(filename) |
| 132 | |
| 133 | if err != nil { |
| 134 | return err |
| 135 | } |
| 136 | defer f.Close() |
| 137 | t := template.Must(template.New("index-template").Parse(indexTemplate)) |
no test coverage detected