11package cli
22
3+ var helpNameTemplate = `{{$v := offset .HelpName 6}}{{wrap .HelpName 3}}{{if .Usage}} - {{wrap .Usage $v}}{{end}}`
4+ var usageTemplate = `{{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.HelpName}}{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}`
5+ var descriptionTemplate = `{{wrap .Description 3}}`
6+ var authorsTemplate = `{{with $length := len .Authors}}{{if ne 1 $length}}S{{end}}{{end}}:
7+ {{range $index, $author := .Authors}}{{if $index}}
8+ {{end}}{{$author}}{{end}}`
9+ var visibleCommandTemplate = `{{ $cv := offsetCommands .VisibleCommands 5}}{{range .VisibleCommands}}
10+ {{$s := join .Names ", "}}{{$s}}{{ $sp := subtract $cv (offset $s 3) }}{{ indent $sp ""}}{{wrap .Usage $cv}}{{end}}`
11+ var visibleCommandCategoryTemplate = `{{range .VisibleCategories}}{{if .Name}}
12+ {{.Name}}:{{range .VisibleCommands}}
13+ {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}{{else}}{{template "visibleCommandTemplate" .}}{{end}}{{end}}`
14+ var visibleFlagCategoryTemplate = `{{range .VisibleFlagCategories}}
15+ {{if .Name}}{{.Name}}
16+ {{end}}{{range .Flags}}{{.}}
17+ {{end}}{{end}}`
18+
19+ var visibleFlagTemplate = `{{range $index, $option := .VisibleFlags}}{{if $index}}{{end}}
20+ {{wrap $option.String 6}}{{end}}`
21+
22+ var versionTemplate = `{{if .Version}}{{if not .HideVersion}}
23+
24+ VERSION:
25+ {{.Version}}{{end}}{{end}}`
26+
27+ var copyrightTemplate = `{{wrap .Copyright 3}}`
28+
329// AppHelpTemplate is the text template for the Default help topic.
430// cli.go uses text/template to render templates. You can
531// render custom help text by setting this variable.
632var AppHelpTemplate = `NAME:
7- {{$v := offset .Name 6}}{{wrap .Name 3}}{{if .Usage}} - {{wrap .Usage $v}}{{end }}
33+ {{template "helpNameTemplate" . }}
834
935USAGE:
1036 {{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.HelpName}} {{if .VisibleFlags}}[global options]{{end}}{{if .Commands}} command [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}{{if .Version}}{{if not .HideVersion}}
@@ -13,75 +39,56 @@ VERSION:
1339 {{.Version}}{{end}}{{end}}{{if .Description}}
1440
1541DESCRIPTION:
16- {{wrap .Description 3 }}{{end}}{{if len .Authors}}
42+ {{template "descriptionTemplate" . }}{{end}}{{if len .Authors}}
1743
18- AUTHOR{{with $length := len .Authors}}{{if ne 1 $length}}S{{end}}{{end}}:
19- {{range $index, $author := .Authors}}{{if $index}}
20- {{end}}{{$author}}{{end}}{{end}}{{if .VisibleCommands}}
44+ AUTHOR{{template "authorsTemplate" .}}{{end}}{{if .VisibleCommands}}
2145
22- COMMANDS:{{range .VisibleCategories}}{{if .Name}}
23- {{.Name}}:{{range .VisibleCommands}}
24- {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}{{else}}{{ $cv := offsetCommands .VisibleCommands 5}}{{range .VisibleCommands}}
25- {{$s := join .Names ", "}}{{$s}}{{ $sp := subtract $cv (offset $s 3) }}{{ indent $sp ""}}{{wrap .Usage $cv}}{{end}}{{end}}{{end}}{{end}}{{if .VisibleFlagCategories}}
46+ COMMANDS:{{template "visibleCommandCategoryTemplate" .}}{{end}}{{if .VisibleFlagCategories}}
2647
27- GLOBAL OPTIONS:{{range .VisibleFlagCategories}}
28- {{if .Name}}{{.Name}}
29- {{end}}{{range .Flags}}{{.}}
30- {{end}}{{end}}{{else}}{{if .VisibleFlags}}
48+ GLOBAL OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}}
3149
32- GLOBAL OPTIONS:
33- {{range $index, $option := .VisibleFlags}}{{if $index}}
34- {{end}}{{wrap $option.String 6}}{{end}}{{end}}{{end}}{{if .Copyright}}
50+ GLOBAL OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}{{if .Copyright}}
3551
3652COPYRIGHT:
37- {{wrap .Copyright 3 }}{{end}}
53+ {{template "copyrightTemplate" . }}{{end}}
3854`
3955
4056// CommandHelpTemplate is the text template for the command help topic.
4157// cli.go uses text/template to render templates. You can
4258// render custom help text by setting this variable.
4359var CommandHelpTemplate = `NAME:
44- {{$v := offset .HelpName 6}}{{wrap .HelpName 3}}{{if .Usage}} - {{wrap .Usage $v}}{{end }}
60+ {{template "helpNameTemplate" . }}
4561
4662USAGE:
47- {{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.HelpName}}{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end }}{{if .Category}}
63+ {{template "usageTemplate" . }}{{if .Category}}
4864
4965CATEGORY:
5066 {{.Category}}{{end}}{{if .Description}}
5167
5268DESCRIPTION:
53- {{wrap .Description 3 }}{{end}}{{if .VisibleFlagCategories}}
69+ {{template "descriptionTemplate" . }}{{end}}{{if .VisibleFlagCategories}}
5470
55- OPTIONS:{{range .VisibleFlagCategories}}
56- {{if .Name}}{{.Name}}
57- {{end}}{{range .Flags}}{{.}}
58- {{end}}{{end}}{{else}}{{if .VisibleFlags}}
59- OPTIONS:{{range $index, $option := .VisibleFlags}}{{if $index}}{{end}}
60- {{wrap $option.String 6}}{{end}}{{end}}{{end}}
61- `
71+ OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}}
72+
73+ OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}`
6274
6375// SubcommandHelpTemplate is the text template for the subcommand help topic.
6476// cli.go uses text/template to render templates. You can
6577// render custom help text by setting this variable.
6678var SubcommandHelpTemplate = `NAME:
67- {{.HelpName}} - {{.Usage }}
79+ {{template "helpNameTemplate" . }}
6880
6981USAGE:
7082 {{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.HelpName}} command{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}{{if .Description}}
7183
7284DESCRIPTION:
73- {{wrap .Description 3 }}{{end}}{{if .VisibleCommands}}
85+ {{template "descriptionTemplate" . }}{{end}}{{if .VisibleCommands}}
7486
75- COMMANDS:{{ $cv := offsetCommands .VisibleCommands 5}}{{range .VisibleCommands}}
76- {{$s := join .Names ", "}}{{$s}}{{ $sp := subtract $cv (offset $s 3) }}{{ indent $sp ""}}{{wrap .Usage $cv}}{{end}}{{end}}{{if .VisibleFlagCategories}}
87+ COMMANDS:{{template "visibleCommandTemplate" .}}{{end}}{{if .VisibleFlagCategories}}
7788
78- OPTIONS:{{range .VisibleFlagCategories}}
79- {{if .Name}}{{.Name}}{{end}}{{range .Flags}}{{.}}
80- {{end}}{{end}}{{else}}{{if .VisibleFlags}}
89+ OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}}
8190
82- OPTIONS:{{range $index, $option := .VisibleFlags}}{{if $index}}{{end}}
83- {{wrap $option.String 6}}{{end}}{{end}}{{end}}
84- `
91+ OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}`
8592
8693var MarkdownDocTemplate = `{{if gt .SectionNum 0}}% {{ .App.Name }} {{ .SectionNum }}
8794
0 commit comments