prometheusmetricshost-metricsmachine-metricsnode-metricsprocfsprometheus-exportersystem-informationsystem-metrics
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
262 lines
6.8 KiB
262 lines
6.8 KiB
package kingpin |
|
|
|
// Default usage template. |
|
var DefaultUsageTemplate = `{{define "FormatCommand"}}\ |
|
{{if .FlagSummary}} {{.FlagSummary}}{{end}}\ |
|
{{range .Args}} {{if not .Required}}[{{end}}<{{.Name}}>{{if .Value|IsCumulative}}...{{end}}{{if not .Required}}]{{end}}{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatCommands"}}\ |
|
{{range .FlattenedCommands}}\ |
|
{{if not .Hidden}}\ |
|
{{.FullCommand}}{{if .Default}}*{{end}}{{template "FormatCommand" .}} |
|
{{.Help|Wrap 4}} |
|
{{end}}\ |
|
{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatUsage"}}\ |
|
{{template "FormatCommand" .}}{{if .Commands}} <command> [<args> ...]{{end}} |
|
{{if .Help}} |
|
{{.Help|Wrap 0}}\ |
|
{{end}}\ |
|
|
|
{{end}}\ |
|
|
|
{{if .Context.SelectedCommand}}\ |
|
usage: {{.App.Name}} {{.Context.SelectedCommand}}{{template "FormatUsage" .Context.SelectedCommand}} |
|
{{else}}\ |
|
usage: {{.App.Name}}{{template "FormatUsage" .App}} |
|
{{end}}\ |
|
{{if .Context.Flags}}\ |
|
Flags: |
|
{{.Context.Flags|FlagsToTwoColumns|FormatTwoColumns}} |
|
{{end}}\ |
|
{{if .Context.Args}}\ |
|
Args: |
|
{{.Context.Args|ArgsToTwoColumns|FormatTwoColumns}} |
|
{{end}}\ |
|
{{if .Context.SelectedCommand}}\ |
|
{{if len .Context.SelectedCommand.Commands}}\ |
|
Subcommands: |
|
{{template "FormatCommands" .Context.SelectedCommand}} |
|
{{end}}\ |
|
{{else if .App.Commands}}\ |
|
Commands: |
|
{{template "FormatCommands" .App}} |
|
{{end}}\ |
|
` |
|
|
|
// Usage template where command's optional flags are listed separately |
|
var SeparateOptionalFlagsUsageTemplate = `{{define "FormatCommand"}}\ |
|
{{if .FlagSummary}} {{.FlagSummary}}{{end}}\ |
|
{{range .Args}} {{if not .Required}}[{{end}}<{{.Name}}>{{if .Value|IsCumulative}}...{{end}}{{if not .Required}}]{{end}}{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatCommands"}}\ |
|
{{range .FlattenedCommands}}\ |
|
{{if not .Hidden}}\ |
|
{{.FullCommand}}{{if .Default}}*{{end}}{{template "FormatCommand" .}} |
|
{{.Help|Wrap 4}} |
|
{{end}}\ |
|
{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatUsage"}}\ |
|
{{template "FormatCommand" .}}{{if .Commands}} <command> [<args> ...]{{end}} |
|
{{if .Help}} |
|
{{.Help|Wrap 0}}\ |
|
{{end}}\ |
|
|
|
{{end}}\ |
|
{{if .Context.SelectedCommand}}\ |
|
usage: {{.App.Name}} {{.Context.SelectedCommand}}{{template "FormatUsage" .Context.SelectedCommand}} |
|
{{else}}\ |
|
usage: {{.App.Name}}{{template "FormatUsage" .App}} |
|
{{end}}\ |
|
|
|
{{if .Context.Flags|RequiredFlags}}\ |
|
Required flags: |
|
{{.Context.Flags|RequiredFlags|FlagsToTwoColumns|FormatTwoColumns}} |
|
{{end}}\ |
|
{{if .Context.Flags|OptionalFlags}}\ |
|
Optional flags: |
|
{{.Context.Flags|OptionalFlags|FlagsToTwoColumns|FormatTwoColumns}} |
|
{{end}}\ |
|
{{if .Context.Args}}\ |
|
Args: |
|
{{.Context.Args|ArgsToTwoColumns|FormatTwoColumns}} |
|
{{end}}\ |
|
{{if .Context.SelectedCommand}}\ |
|
Subcommands: |
|
{{if .Context.SelectedCommand.Commands}}\ |
|
{{template "FormatCommands" .Context.SelectedCommand}} |
|
{{end}}\ |
|
{{else if .App.Commands}}\ |
|
Commands: |
|
{{template "FormatCommands" .App}} |
|
{{end}}\ |
|
` |
|
|
|
// Usage template with compactly formatted commands. |
|
var CompactUsageTemplate = `{{define "FormatCommand"}}\ |
|
{{if .FlagSummary}} {{.FlagSummary}}{{end}}\ |
|
{{range .Args}} {{if not .Required}}[{{end}}<{{.Name}}>{{if .Value|IsCumulative}}...{{end}}{{if not .Required}}]{{end}}{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatCommandList"}}\ |
|
{{range .}}\ |
|
{{if not .Hidden}}\ |
|
{{.Depth|Indent}}{{.Name}}{{if .Default}}*{{end}}{{template "FormatCommand" .}} |
|
{{end}}\ |
|
{{template "FormatCommandList" .Commands}}\ |
|
{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatUsage"}}\ |
|
{{template "FormatCommand" .}}{{if .Commands}} <command> [<args> ...]{{end}} |
|
{{if .Help}} |
|
{{.Help|Wrap 0}}\ |
|
{{end}}\ |
|
|
|
{{end}}\ |
|
|
|
{{if .Context.SelectedCommand}}\ |
|
usage: {{.App.Name}} {{.Context.SelectedCommand}}{{template "FormatUsage" .Context.SelectedCommand}} |
|
{{else}}\ |
|
usage: {{.App.Name}}{{template "FormatUsage" .App}} |
|
{{end}}\ |
|
{{if .Context.Flags}}\ |
|
Flags: |
|
{{.Context.Flags|FlagsToTwoColumns|FormatTwoColumns}} |
|
{{end}}\ |
|
{{if .Context.Args}}\ |
|
Args: |
|
{{.Context.Args|ArgsToTwoColumns|FormatTwoColumns}} |
|
{{end}}\ |
|
{{if .Context.SelectedCommand}}\ |
|
{{if .Context.SelectedCommand.Commands}}\ |
|
Commands: |
|
{{.Context.SelectedCommand}} |
|
{{template "FormatCommandList" .Context.SelectedCommand.Commands}} |
|
{{end}}\ |
|
{{else if .App.Commands}}\ |
|
Commands: |
|
{{template "FormatCommandList" .App.Commands}} |
|
{{end}}\ |
|
` |
|
|
|
var ManPageTemplate = `{{define "FormatFlags"}}\ |
|
{{range .Flags}}\ |
|
{{if not .Hidden}}\ |
|
.TP |
|
\fB{{if .Short}}-{{.Short|Char}}, {{end}}--{{.Name}}{{if not .IsBoolFlag}}={{.FormatPlaceHolder}}{{end}}\\fR |
|
{{.Help}} |
|
{{end}}\ |
|
{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatCommand"}}\ |
|
{{if .FlagSummary}} {{.FlagSummary}}{{end}}\ |
|
{{range .Args}} {{if not .Required}}[{{end}}<{{.Name}}{{if .Default}}*{{end}}>{{if .Value|IsCumulative}}...{{end}}{{if not .Required}}]{{end}}{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatCommands"}}\ |
|
{{range .FlattenedCommands}}\ |
|
{{if not .Hidden}}\ |
|
.SS |
|
\fB{{.FullCommand}}{{template "FormatCommand" .}}\\fR |
|
.PP |
|
{{.Help}} |
|
{{template "FormatFlags" .}}\ |
|
{{end}}\ |
|
{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatUsage"}}\ |
|
{{template "FormatCommand" .}}{{if .Commands}} <command> [<args> ...]{{end}}\\fR |
|
{{end}}\ |
|
|
|
.TH {{.App.Name}} 1 {{.App.Version}} "{{.App.Author}}" |
|
.SH "NAME" |
|
{{.App.Name}} |
|
.SH "SYNOPSIS" |
|
.TP |
|
\fB{{.App.Name}}{{template "FormatUsage" .App}} |
|
.SH "DESCRIPTION" |
|
{{.App.Help}} |
|
.SH "OPTIONS" |
|
{{template "FormatFlags" .App}}\ |
|
{{if .App.Commands}}\ |
|
.SH "COMMANDS" |
|
{{template "FormatCommands" .App}}\ |
|
{{end}}\ |
|
` |
|
|
|
// Default usage template. |
|
var LongHelpTemplate = `{{define "FormatCommand"}}\ |
|
{{if .FlagSummary}} {{.FlagSummary}}{{end}}\ |
|
{{range .Args}} {{if not .Required}}[{{end}}<{{.Name}}>{{if .Value|IsCumulative}}...{{end}}{{if not .Required}}]{{end}}{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatCommands"}}\ |
|
{{range .FlattenedCommands}}\ |
|
{{if not .Hidden}}\ |
|
{{.FullCommand}}{{template "FormatCommand" .}} |
|
{{.Help|Wrap 4}} |
|
{{with .Flags|FlagsToTwoColumns}}{{FormatTwoColumnsWithIndent . 4 2}}{{end}} |
|
{{end}}\ |
|
{{end}}\ |
|
{{end}}\ |
|
|
|
{{define "FormatUsage"}}\ |
|
{{template "FormatCommand" .}}{{if .Commands}} <command> [<args> ...]{{end}} |
|
{{if .Help}} |
|
{{.Help|Wrap 0}}\ |
|
{{end}}\ |
|
|
|
{{end}}\ |
|
|
|
usage: {{.App.Name}}{{template "FormatUsage" .App}} |
|
{{if .Context.Flags}}\ |
|
Flags: |
|
{{.Context.Flags|FlagsToTwoColumns|FormatTwoColumns}} |
|
{{end}}\ |
|
{{if .Context.Args}}\ |
|
Args: |
|
{{.Context.Args|ArgsToTwoColumns|FormatTwoColumns}} |
|
{{end}}\ |
|
{{if .App.Commands}}\ |
|
Commands: |
|
{{template "FormatCommands" .App}} |
|
{{end}}\ |
|
` |
|
|
|
var BashCompletionTemplate = ` |
|
_{{.App.Name}}_bash_autocomplete() { |
|
local cur prev opts base |
|
COMPREPLY=() |
|
cur="${COMP_WORDS[COMP_CWORD]}" |
|
opts=$( ${COMP_WORDS[0]} --completion-bash ${COMP_WORDS[@]:1:$COMP_CWORD} ) |
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) |
|
return 0 |
|
} |
|
complete -F _{{.App.Name}}_bash_autocomplete {{.App.Name}} |
|
|
|
` |
|
|
|
var ZshCompletionTemplate = ` |
|
#compdef {{.App.Name}} |
|
autoload -U compinit && compinit |
|
autoload -U bashcompinit && bashcompinit |
|
|
|
_{{.App.Name}}_bash_autocomplete() { |
|
local cur prev opts base |
|
COMPREPLY=() |
|
cur="${COMP_WORDS[COMP_CWORD]}" |
|
opts=$( ${COMP_WORDS[0]} --completion-bash ${COMP_WORDS[@]:1:$COMP_CWORD} ) |
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) |
|
return 0 |
|
} |
|
complete -F _{{.App.Name}}_bash_autocomplete {{.App.Name}} |
|
`
|
|
|