Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 38 additions & 13 deletions gen-compdocs/generators/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ func flagUsages(f *pflag.FlagSet) string {
line += fmt.Sprintf("--%s", flag.Name)
}

varname, usage := UnquoteUsage(flag)
varname, usage := unquoteUsage(flag)
if len(varname) > 0 {
line += " " + varname
}
Expand All @@ -319,11 +319,10 @@ func flagUsages(f *pflag.FlagSet) string {
}
}
if !defaultIsZeroValue(flag) {
defaultValue := flag.DefValue
if flag.Value.Type() == "string" {
// There are cases where the string is very very long, split
// it to mutiple lines manually
defaultValue := flag.DefValue

if len(defaultValue) > 40 {
defaultValue = strings.Replace(defaultValue, ",", ",<br />", -1)
}
Expand All @@ -332,15 +331,19 @@ func flagUsages(f *pflag.FlagSet) string {
myUser, err := user.Current()
if err == nil {
noprefix := strings.TrimPrefix(defaultValue, myUser.HomeDir)
line += fmt.Sprintf("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: \"$HOME%s\"", noprefix)
} else {
line += fmt.Sprintf("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: \"%s\"", defaultValue)
defaultValue = fmt.Sprintf("$HOME%s", noprefix)
}
} else {
line += fmt.Sprintf("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: \"%s\"", defaultValue)
}
line += fmt.Sprintf("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: \"%s\"", defaultValue)
} else if flag.Value.Type() == "stringSlice" {
defaultValue := flag.DefValue
// For string slices, the default value should not contain '[' ]r ']'
defaultValue = strings.TrimPrefix(defaultValue, "[")
defaultValue = strings.TrimSuffix(defaultValue, "]")
defaultValue = strings.Replace(defaultValue, " ", "", -1)
line += fmt.Sprintf("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: \"%s\"", defaultValue)
} else {
line += fmt.Sprintf("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: %s", flag.DefValue)
line += fmt.Sprintf("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default: %s", defaultValue)
}
}
line += "</td>\n</tr>\n<tr>\n<td></td><td style=\"line-height: 130%%; word-wrap: break-word;\">"
Expand Down Expand Up @@ -377,6 +380,8 @@ func defaultIsZeroValue(f *pflag.Flag) bool {
return f.DefValue == "<nil>"
case "intSlice", "stringSlice", "stringArray":
return f.DefValue == "[]"
case "namedCertKey":
return f.DefValue == "[]"
default:
switch f.Value.String() {
case "false":
Expand All @@ -392,7 +397,8 @@ func defaultIsZeroValue(f *pflag.Flag) bool {
}
}

func UnquoteUsage(flag *pflag.Flag) (name string, usage string) {
// Adapted usage function from pflag
func unquoteUsage(flag *pflag.Flag) (name string, usage string) {
// Look for a back-quoted name, but avoid the strings package.
usage = flag.Usage
for i := 0; i < len(usage); i++ {
Expand All @@ -412,13 +418,32 @@ func UnquoteUsage(flag *pflag.Flag) (name string, usage string) {
switch name {
case "bool":
name = ""
case "float64":
case "float64", "float32":
name = "float"
case "int64":
case "int64", "severity", "Level":
name = "int"
case "uint64":
name = "uint"
case "stringSlice", "stringArray":
name = "strings"
case "intSlice":
name = "ints"
case "uintSlice":
name = "uints"
case "boolSlice":
name = "bools"
case "mapStringString":
name = "&lt;comma-separated 'key=value' pairs&gt;"
case "mapStringBool":
name = "&lt;comma-separated 'key=True|False' pairs&gt;"
case "namedCertKey", "ip":
name = "string"
case "moduleSpec":
name = "&lt;comma-separated 'pattern=N' settings&gt;"
case "portRange":
name = "&lt;a string in the form 'N1-N2'&gt;"
case "traceLocation":
name = "&lt;a string in the form 'file:N'&gt;"
}

return
}
5 changes: 0 additions & 5 deletions gen-compdocs/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,17 @@ module github.com/kubernetes-sigs/reference-docs/gen-compdocs
go 1.15

require (
github.com/go-logr/logr v0.3.0 // indirect
github.com/kr/pretty v0.2.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/russross/blackfriday/v2 v2.0.1 // indirect
github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
github.com/spf13/cobra v1.1.1
github.com/spf13/pflag v1.0.5
github.com/yuin/goldmark v1.1.27 // indirect
github.com/yuin/goldmark-highlighting v0.0.0-20200307114337-60d527fdb691 // indirect
golang.org/x/mod v0.3.0 // indirect
golang.org/x/tools v0.0.0-20200616133436-c1934b75d054 // indirect
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
gopkg.in/yaml.v2 v2.3.0 // indirect
k8s.io/gengo v0.0.0-20201113003025-83324d819ded // indirect
k8s.io/klog/v2 v2.4.0 // indirect
k8s.io/kubectl v0.0.0
k8s.io/kubernetes v0.0.0
sigs.k8s.io/yaml v1.2.0 // indirect
Expand Down
Loading