144 lines
4.9 KiB
Go
144 lines
4.9 KiB
Go
|
package cli
|
||
|
|
||
|
var helpNameTemplate = `{{$v := offset .HelpName 6}}{{wrap .HelpName 3}}{{if .Usage}} - {{wrap .Usage $v}}{{end}}`
|
||
|
var usageTemplate = `{{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.HelpName}}{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}`
|
||
|
var descriptionTemplate = `{{wrap .Description 3}}`
|
||
|
var authorsTemplate = `{{with $length := len .Authors}}{{if ne 1 $length}}S{{end}}{{end}}:
|
||
|
{{range $index, $author := .Authors}}{{if $index}}
|
||
|
{{end}}{{$author}}{{end}}`
|
||
|
var visibleCommandTemplate = `{{ $cv := offsetCommands .VisibleCommands 5}}{{range .VisibleCommands}}
|
||
|
{{$s := join .Names ", "}}{{$s}}{{ $sp := subtract $cv (offset $s 3) }}{{ indent $sp ""}}{{wrap .Usage $cv}}{{end}}`
|
||
|
var visibleCommandCategoryTemplate = `{{range .VisibleCategories}}{{if .Name}}
|
||
|
{{.Name}}:{{range .VisibleCommands}}
|
||
|
{{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}{{else}}{{template "visibleCommandTemplate" .}}{{end}}{{end}}`
|
||
|
var visibleFlagCategoryTemplate = `{{range .VisibleFlagCategories}}
|
||
|
{{if .Name}}{{.Name}}
|
||
|
|
||
|
{{end}}{{$flglen := len .Flags}}{{range $i, $e := .Flags}}{{if eq (subtract $flglen $i) 1}}{{$e}}
|
||
|
{{else}}{{$e}}
|
||
|
{{end}}{{end}}{{end}}`
|
||
|
|
||
|
var visibleFlagTemplate = `{{range $i, $e := .VisibleFlags}}
|
||
|
{{wrap $e.String 6}}{{end}}`
|
||
|
|
||
|
var versionTemplate = `{{if .Version}}{{if not .HideVersion}}
|
||
|
|
||
|
VERSION:
|
||
|
{{.Version}}{{end}}{{end}}`
|
||
|
|
||
|
var copyrightTemplate = `{{wrap .Copyright 3}}`
|
||
|
|
||
|
// AppHelpTemplate is the text template for the Default help topic.
|
||
|
// cli.go uses text/template to render templates. You can
|
||
|
// render custom help text by setting this variable.
|
||
|
var AppHelpTemplate = `NAME:
|
||
|
{{template "helpNameTemplate" .}}
|
||
|
|
||
|
USAGE:
|
||
|
{{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}}
|
||
|
|
||
|
VERSION:
|
||
|
{{.Version}}{{end}}{{end}}{{if .Description}}
|
||
|
|
||
|
DESCRIPTION:
|
||
|
{{template "descriptionTemplate" .}}{{end}}
|
||
|
{{- if len .Authors}}
|
||
|
|
||
|
AUTHOR{{template "authorsTemplate" .}}{{end}}{{if .VisibleCommands}}
|
||
|
|
||
|
COMMANDS:{{template "visibleCommandCategoryTemplate" .}}{{end}}{{if .VisibleFlagCategories}}
|
||
|
|
||
|
GLOBAL OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}}
|
||
|
|
||
|
GLOBAL OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}{{if .Copyright}}
|
||
|
|
||
|
COPYRIGHT:
|
||
|
{{template "copyrightTemplate" .}}{{end}}
|
||
|
`
|
||
|
|
||
|
// CommandHelpTemplate is the text template for the command help topic.
|
||
|
// cli.go uses text/template to render templates. You can
|
||
|
// render custom help text by setting this variable.
|
||
|
var CommandHelpTemplate = `NAME:
|
||
|
{{template "helpNameTemplate" .}}
|
||
|
|
||
|
USAGE:
|
||
|
{{template "usageTemplate" .}}{{if .Category}}
|
||
|
|
||
|
CATEGORY:
|
||
|
{{.Category}}{{end}}{{if .Description}}
|
||
|
|
||
|
DESCRIPTION:
|
||
|
{{template "descriptionTemplate" .}}{{end}}{{if .VisibleFlagCategories}}
|
||
|
|
||
|
OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}}
|
||
|
|
||
|
OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}
|
||
|
`
|
||
|
|
||
|
// SubcommandHelpTemplate is the text template for the subcommand help topic.
|
||
|
// cli.go uses text/template to render templates. You can
|
||
|
// render custom help text by setting this variable.
|
||
|
var SubcommandHelpTemplate = `NAME:
|
||
|
{{template "helpNameTemplate" .}}
|
||
|
|
||
|
USAGE:
|
||
|
{{if .UsageText}}{{wrap .UsageText 3}}{{else}}{{.HelpName}} {{if .VisibleFlags}}command [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}{{if .Description}}
|
||
|
|
||
|
DESCRIPTION:
|
||
|
{{template "descriptionTemplate" .}}{{end}}{{if .VisibleCommands}}
|
||
|
|
||
|
COMMANDS:{{template "visibleCommandTemplate" .}}{{end}}{{if .VisibleFlagCategories}}
|
||
|
|
||
|
OPTIONS:{{template "visibleFlagCategoryTemplate" .}}{{else if .VisibleFlags}}
|
||
|
|
||
|
OPTIONS:{{template "visibleFlagTemplate" .}}{{end}}
|
||
|
`
|
||
|
|
||
|
var MarkdownDocTemplate = `{{if gt .SectionNum 0}}% {{ .App.Name }} {{ .SectionNum }}
|
||
|
|
||
|
{{end}}# NAME
|
||
|
|
||
|
{{ .App.Name }}{{ if .App.Usage }} - {{ .App.Usage }}{{ end }}
|
||
|
|
||
|
# SYNOPSIS
|
||
|
|
||
|
{{ .App.Name }}
|
||
|
{{ if .SynopsisArgs }}
|
||
|
` + "```" + `
|
||
|
{{ range $v := .SynopsisArgs }}{{ $v }}{{ end }}` + "```" + `
|
||
|
{{ end }}{{ if .App.Description }}
|
||
|
# DESCRIPTION
|
||
|
|
||
|
{{ .App.Description }}
|
||
|
{{ end }}
|
||
|
**Usage**:
|
||
|
|
||
|
` + "```" + `{{ if .App.UsageText }}
|
||
|
{{ .App.UsageText }}
|
||
|
{{ else }}
|
||
|
{{ .App.Name }} [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]
|
||
|
{{ end }}` + "```" + `
|
||
|
{{ if .GlobalArgs }}
|
||
|
# GLOBAL OPTIONS
|
||
|
{{ range $v := .GlobalArgs }}
|
||
|
{{ $v }}{{ end }}
|
||
|
{{ end }}{{ if .Commands }}
|
||
|
# COMMANDS
|
||
|
{{ range $v := .Commands }}
|
||
|
{{ $v }}{{ end }}{{ end }}`
|
||
|
|
||
|
var FishCompletionTemplate = `# {{ .App.Name }} fish shell completion
|
||
|
|
||
|
function __fish_{{ .App.Name }}_no_subcommand --description 'Test if there has been any subcommand yet'
|
||
|
for i in (commandline -opc)
|
||
|
if contains -- $i{{ range $v := .AllCommands }} {{ $v }}{{ end }}
|
||
|
return 1
|
||
|
end
|
||
|
end
|
||
|
return 0
|
||
|
end
|
||
|
|
||
|
{{ range $v := .Completions }}{{ $v }}
|
||
|
{{ end }}`
|