Skip to content

Commit 6c1ef85

Browse files
authored
fix: Update cli usage template for cobra feature parity (#1463)
Fixes #1423 Related #1233, #1403
1 parent b06ef0a commit 6c1ef85

File tree

1 file changed

+55
-8
lines changed

1 file changed

+55
-8
lines changed

cli/root.go

+55-8
Original file line numberDiff line numberDiff line change
@@ -182,21 +182,68 @@ func usageTemplate() string {
182182
// Customizes the color of headings to make subcommands
183183
// more visually appealing.
184184
header := cliui.Styles.Placeholder
185+
cobra.AddTemplateFunc("usageHeader", func(s string) string {
186+
return header.Render(s)
187+
})
185188

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:"}}
187204
{{.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}}
188224
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}}
191229
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}}
194234
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}}
197243
244+
{{- if .HasAvailableSubCommands}}
198245
Use "{{.CommandPath}} [command] --help" for more information about a command.
199-
`
246+
{{end}}`
200247
}
201248

202249
func versionTemplate() string {

0 commit comments

Comments
 (0)