more closely match cobra default val display
This commit is contained in:
parent
fa7d651ef3
commit
92cb2cc78d
2 changed files with 29 additions and 12 deletions
|
|
@ -150,15 +150,7 @@ func manPrintFlags(buf *bytes.Buffer, flags *pflag.FlagSet) {
|
|||
buf.WriteString(fmt.Sprintf("`--%s`", flag.Name))
|
||||
}
|
||||
|
||||
defval := ""
|
||||
hiddenDefs := map[string]bool{
|
||||
"false": true,
|
||||
"": true,
|
||||
"[]": true,
|
||||
}
|
||||
if !hiddenDefs[flag.DefValue] {
|
||||
defval = fmt.Sprintf(" (Default: %s)", flag.Value)
|
||||
}
|
||||
defval := getDefaultValueDisplayString(flag)
|
||||
|
||||
if varname == "" && defval != "" {
|
||||
buf.WriteString(fmt.Sprintf(" `%s`\n", strings.TrimSpace(defval)))
|
||||
|
|
|
|||
|
|
@ -46,6 +46,30 @@ func hasNonHelpFlags(fs *pflag.FlagSet) (found bool) {
|
|||
return
|
||||
}
|
||||
|
||||
var hiddenFlagDefaults = map[string]bool{
|
||||
"false": true,
|
||||
"": true,
|
||||
"[]": true,
|
||||
"duration": true,
|
||||
}
|
||||
|
||||
var defaultValFormats = map[string]string{
|
||||
"string": " (default \"%s\")",
|
||||
}
|
||||
|
||||
func getDefaultValueDisplayString(f *pflag.Flag) string {
|
||||
|
||||
if hiddenFlagDefaults[f.DefValue] || hiddenFlagDefaults[f.Value.Type()] {
|
||||
return ""
|
||||
}
|
||||
|
||||
if dvf, found := defaultValFormats[f.Value.Type()]; found {
|
||||
return fmt.Sprintf(dvf, f.Value)
|
||||
}
|
||||
return fmt.Sprintf(" (default: %s)", f.Value)
|
||||
|
||||
}
|
||||
|
||||
type flagView struct {
|
||||
Name string
|
||||
Varname string
|
||||
|
|
@ -56,8 +80,8 @@ type flagView struct {
|
|||
|
||||
var flagsTemplate = `
|
||||
<dl class="flags">{{ range . }}
|
||||
<dt>{{ if .Shorthand }}<code>-{{.Shorthand}}</code>, {{ end -}}
|
||||
<code>--{{.Name}}{{ if .Varname }} <{{.Varname}}>{{ end }}{{ if not (eq .DefValue "false" "" "[]") }} (Default: {{.DefValue}}){{ end }}</code></dt>
|
||||
<dt>{{ if .Shorthand }}<code>-{{.Shorthand}}</code>, {{ end }}
|
||||
<code>--{{.Name}}{{ if .Varname }} <{{.Varname}}>{{ end }}{{.DefValue}} </code></dt>
|
||||
<dd>{{.Usage}}</dd>
|
||||
{{ end }}</dl>
|
||||
`
|
||||
|
|
@ -71,11 +95,12 @@ func printFlagsHTML(w io.Writer, fs *pflag.FlagSet) error {
|
|||
return
|
||||
}
|
||||
varname, usage := pflag.UnquoteUsage(f)
|
||||
|
||||
flags = append(flags, flagView{
|
||||
Name: f.Name,
|
||||
Varname: varname,
|
||||
Shorthand: f.Shorthand,
|
||||
DefValue: f.DefValue,
|
||||
DefValue: getDefaultValueDisplayString(f),
|
||||
Usage: usage,
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue