MCPcopy Create free account
hub / github.com/OctopusDeploy/cli / run

Function run

cmd/gen-docs/main.go:80–155  ·  view source on GitHub ↗
(args []string)

Source from the content-addressed store, hash-verified

78}
79
80func 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))

Callers 1

mainFunction · 0.85

Calls 9

NewAskProviderFunction · 0.92
NewStubClientFactoryFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
NewProviderFunction · 0.92
NewOutputPrinterFunction · 0.92
NewCmdRootFunction · 0.92
GenMarkdownTreeCustomFunction · 0.85
CloseMethod · 0.45

Tested by

no test coverage detected