@@ -182,21 +182,68 @@ func usageTemplate() string {
182
182
// Customizes the color of headings to make subcommands
183
183
// more visually appealing.
184
184
header := cliui .Styles .Placeholder
185
+ cobra .AddTemplateFunc ("usageHeader" , func (s string ) string {
186
+ return header .Render (s )
187
+ })
185
188
186
- return `{{if .HasExample}}` + header .Render ("Get Started:" ) + `
189
+ return `{{usageHeader "Usage:"}}
190
+ {{- if .Runnable}}
191
+ {{.UseLine}}
192
+ {{end}}
193
+ {{- if .HasAvailableSubCommands}}
194
+ {{.CommandPath}} [command]
195
+ {{end}}
196
+
197
+ {{- if gt (len .Aliases) 0}}
198
+ {{usageHeader "Aliases:"}}
199
+ {{.NameAndAliases}}
200
+ {{end}}
201
+
202
+ {{- if .HasExample}}
203
+ {{usageHeader "Get Started:"}}
187
204
{{.Example}}
205
+ {{end}}
206
+
207
+ {{- if .HasAvailableSubCommands}}
208
+ {{usageHeader "Commands:"}}
209
+ {{- range .Commands}}
210
+ {{- if (or (and .IsAvailableCommand (eq (len .Annotations) 0)) (eq .Name "help"))}}
211
+ {{rpad .Name .NamePadding }} {{.Short}}
212
+ {{- end}}
213
+ {{- end}}
214
+ {{end}}
215
+
216
+ {{- if and (not .HasParent) .HasAvailableSubCommands}}
217
+ {{usageHeader "Workspace Commands:"}}
218
+ {{- range .Commands}}
219
+ {{- if (and .IsAvailableCommand (ne (index .Annotations "workspaces") ""))}}
220
+ {{rpad .Name .NamePadding }} {{.Short}}
221
+ {{- end}}
222
+ {{- end}}
223
+ {{end}}
188
224
189
- {{end}}{{if .HasAvailableLocalFlags}}` + header .Render ("Flags:" ) + `
190
- {{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableSubCommands}}
225
+ {{- if .HasAvailableLocalFlags}}
226
+ {{usageHeader "Flags:"}}
227
+ {{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}
228
+ {{end}}
191
229
192
- ` + header .Render ("Commands:" ) + `{{range .Commands}}{{if and .IsAvailableCommand (eq (len .Annotations) 0)}}
193
- {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if not .HasParent }}
230
+ {{- if .HasAvailableInheritedFlags}}
231
+ {{usageHeader "Global Flags:"}}
232
+ {{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}
233
+ {{end}}
194
234
195
- ` + header .Render ("Workspace Commands:" ) + `{{range .Commands}}{{if and .IsAvailableCommand (ne (index .Annotations "workspaces") "")}}
196
- {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}
235
+ {{- if .HasHelpSubCommands}}
236
+ {{usageHeader "Additional help topics:"}}
237
+ {{- range .Commands}}
238
+ {{- if .IsAdditionalHelpTopicCommand}}
239
+ {{rpad .CommandPath .CommandPathPadding}} {{.Short}}
240
+ {{- end}}
241
+ {{- end}}
242
+ {{end}}
197
243
244
+ {{- if .HasAvailableSubCommands}}
198
245
Use "{{.CommandPath}} [command] --help" for more information about a command.
199
- `
246
+ {{end}} `
200
247
}
201
248
202
249
func versionTemplate () string {
0 commit comments