Annotate optional flags in usageFunc
diff --git a/flag.go b/flag.go
index c45ad0f..0dce0a3 100644
--- a/flag.go
+++ b/flag.go
@@ -381,16 +381,25 @@
if len(flag.Deprecated) > 0 {
return
}
- format := "--%s=%s: %s\n"
+ format := ""
+ if len(flag.Shorthand) > 0 {
+ format = " -%s, --%s"
+ } else {
+ format = " %s --%s"
+ }
+ if len(flag.NoOptDefVal) > 0 {
+ format = format + "["
+ }
if _, ok := flag.Value.(*stringValue); ok {
// put quotes on the value
- format = "--%s=%q: %s\n"
- }
- if len(flag.Shorthand) > 0 {
- format = " -%s, " + format
+ format = format + "=%q"
} else {
- format = " %s " + format
+ format = format + "=%s"
}
+ if len(flag.NoOptDefVal) > 0 {
+ format = format + "]"
+ }
+ format = format + ": %s\n"
fmt.Fprintf(x, format, flag.Shorthand, flag.Name, flag.DefValue, flag.Usage)
})