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))
|
buf.WriteString(fmt.Sprintf("`--%s`", flag.Name))
|
||||||
}
|
}
|
||||||
|
|
||||||
defval := ""
|
defval := getDefaultValueDisplayString(flag)
|
||||||
hiddenDefs := map[string]bool{
|
|
||||||
"false": true,
|
|
||||||
"": true,
|
|
||||||
"[]": true,
|
|
||||||
}
|
|
||||||
if !hiddenDefs[flag.DefValue] {
|
|
||||||
defval = fmt.Sprintf(" (Default: %s)", flag.Value)
|
|
||||||
}
|
|
||||||
|
|
||||||
if varname == "" && defval != "" {
|
if varname == "" && defval != "" {
|
||||||
buf.WriteString(fmt.Sprintf(" `%s`\n", strings.TrimSpace(defval)))
|
buf.WriteString(fmt.Sprintf(" `%s`\n", strings.TrimSpace(defval)))
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,30 @@ func hasNonHelpFlags(fs *pflag.FlagSet) (found bool) {
|
||||||
return
|
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 {
|
type flagView struct {
|
||||||
Name string
|
Name string
|
||||||
Varname string
|
Varname string
|
||||||
|
|
@ -56,8 +80,8 @@ type flagView struct {
|
||||||
|
|
||||||
var flagsTemplate = `
|
var flagsTemplate = `
|
||||||
<dl class="flags">{{ range . }}
|
<dl class="flags">{{ range . }}
|
||||||
<dt>{{ if .Shorthand }}<code>-{{.Shorthand}}</code>, {{ end -}}
|
<dt>{{ if .Shorthand }}<code>-{{.Shorthand}}</code>, {{ end }}
|
||||||
<code>--{{.Name}}{{ if .Varname }} <{{.Varname}}>{{ end }}{{ if not (eq .DefValue "false" "" "[]") }} (Default: {{.DefValue}}){{ end }}</code></dt>
|
<code>--{{.Name}}{{ if .Varname }} <{{.Varname}}>{{ end }}{{.DefValue}} </code></dt>
|
||||||
<dd>{{.Usage}}</dd>
|
<dd>{{.Usage}}</dd>
|
||||||
{{ end }}</dl>
|
{{ end }}</dl>
|
||||||
`
|
`
|
||||||
|
|
@ -71,11 +95,12 @@ func printFlagsHTML(w io.Writer, fs *pflag.FlagSet) error {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
varname, usage := pflag.UnquoteUsage(f)
|
varname, usage := pflag.UnquoteUsage(f)
|
||||||
|
|
||||||
flags = append(flags, flagView{
|
flags = append(flags, flagView{
|
||||||
Name: f.Name,
|
Name: f.Name,
|
||||||
Varname: varname,
|
Varname: varname,
|
||||||
Shorthand: f.Shorthand,
|
Shorthand: f.Shorthand,
|
||||||
DefValue: f.DefValue,
|
DefValue: getDefaultValueDisplayString(f),
|
||||||
Usage: usage,
|
Usage: usage,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue