Merge pull request #152 from eparis/no-newline-after-flags

No newline after Flags in usage
This commit is contained in:
Eric Paris 2015-09-11 18:00:50 -05:00
commit d96b4f7741
2 changed files with 15 additions and 6 deletions

View File

@ -23,13 +23,15 @@ import (
"strconv" "strconv"
"strings" "strings"
"text/template" "text/template"
"unicode"
) )
var templateFuncs template.FuncMap = template.FuncMap{ var templateFuncs template.FuncMap = template.FuncMap{
"trim": strings.TrimSpace, "trim": strings.TrimSpace,
"rpad": rpad, "trimRightSpace": trimRightSpace,
"gt": Gt, "rpad": rpad,
"eq": Eq, "gt": Gt,
"eq": Eq,
} }
var initializers []func() var initializers []func()
@ -113,6 +115,10 @@ func Eq(a interface{}, b interface{}) bool {
return false return false
} }
func trimRightSpace(s string) string {
return strings.TrimRightFunc(s, unicode.IsSpace)
}
//rpad adds padding to the right of a string //rpad adds padding to the right of a string
func rpad(s string, padding int) string { func rpad(s string, padding int) string {
template := fmt.Sprintf("%%-%ds", padding) template := fmt.Sprintf("%%-%ds", padding)

View File

@ -186,6 +186,9 @@ func (c *Command) UsageFunc() (f func(*Command) error) {
} else { } else {
return func(c *Command) error { return func(c *Command) error {
err := tmpl(c.Out(), c.UsageTemplate(), c) err := tmpl(c.Out(), c.UsageTemplate(), c)
if err != nil {
fmt.Print(err)
}
return err return err
} }
} }
@ -263,10 +266,10 @@ Available Commands:{{range .Commands}}{{if .IsAvailableCommand}}
{{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{ if .HasLocalFlags}} {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{ if .HasLocalFlags}}
Flags: Flags:
{{.LocalFlags.FlagUsages}}{{end}}{{ if .HasInheritedFlags}} {{.LocalFlags.FlagUsages | trimRightSpace}}{{end}}{{ if .HasInheritedFlags}}
Global Flags: Global Flags:
{{.InheritedFlags.FlagUsages}}{{end}}{{if .HasHelpSubCommands}} {{.InheritedFlags.FlagUsages | trimRightSpace}}{{end}}{{if .HasHelpSubCommands}}
Additional help topics:{{range .Commands}}{{if .IsHelpCommand}} Additional help topics:{{range .Commands}}{{if .IsHelpCommand}}
{{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{ if .HasSubCommands }} {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{ if .HasSubCommands }}