commit
b09240a9c3
1 changed files with 21 additions and 6 deletions
|
@ -289,7 +289,8 @@ type FlagSet struct {
|
||||||
// Usage is the function called when an error occurs while parsing flags.
|
// Usage is the function called when an error occurs while parsing flags.
|
||||||
// The field is a function (not a method) that may be changed to point to
|
// The field is a function (not a method) that may be changed to point to
|
||||||
// a custom error handler.
|
// a custom error handler.
|
||||||
Usage func()
|
Usage func()
|
||||||
|
ShortUsage func()
|
||||||
|
|
||||||
name string
|
name string
|
||||||
parsed bool
|
parsed bool
|
||||||
|
@ -511,6 +512,12 @@ func (f *FlagSet) PrintDefaults() {
|
||||||
if runtime.GOOS != "windows" && home == "/" {
|
if runtime.GOOS != "windows" && home == "/" {
|
||||||
home = ""
|
home = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add a blank line between cmd description and list of options
|
||||||
|
if f.FlagCount() > 0 {
|
||||||
|
fmt.Fprintln(writer, "")
|
||||||
|
}
|
||||||
|
|
||||||
f.VisitAll(func(flag *Flag) {
|
f.VisitAll(func(flag *Flag) {
|
||||||
format := " -%s=%s"
|
format := " -%s=%s"
|
||||||
names := []string{}
|
names := []string{}
|
||||||
|
@ -564,6 +571,12 @@ var Usage = func() {
|
||||||
PrintDefaults()
|
PrintDefaults()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Usage prints to standard error a usage message documenting the standard command layout
|
||||||
|
// The function is a variable that may be changed to point to a custom function.
|
||||||
|
var ShortUsage = func() {
|
||||||
|
fmt.Fprintf(CommandLine.output, "Usage of %s:\n", os.Args[0])
|
||||||
|
}
|
||||||
|
|
||||||
// FlagCount returns the number of flags that have been defined.
|
// FlagCount returns the number of flags that have been defined.
|
||||||
func (f *FlagSet) FlagCount() int { return len(sortFlags(f.formal)) }
|
func (f *FlagSet) FlagCount() int { return len(sortFlags(f.formal)) }
|
||||||
|
|
||||||
|
@ -1067,12 +1080,15 @@ func (cmd *FlagSet) ParseFlags(args []string, withHelp bool) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if help != nil && *help {
|
if help != nil && *help {
|
||||||
|
cmd.SetOutput(os.Stdout)
|
||||||
cmd.Usage()
|
cmd.Usage()
|
||||||
// just in case Usage does not exit
|
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
if str := cmd.CheckArgs(); str != "" {
|
if str := cmd.CheckArgs(); str != "" {
|
||||||
|
cmd.SetOutput(os.Stderr)
|
||||||
cmd.ReportError(str, withHelp)
|
cmd.ReportError(str, withHelp)
|
||||||
|
cmd.ShortUsage()
|
||||||
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -1080,13 +1096,12 @@ func (cmd *FlagSet) ParseFlags(args []string, withHelp bool) error {
|
||||||
func (cmd *FlagSet) ReportError(str string, withHelp bool) {
|
func (cmd *FlagSet) ReportError(str string, withHelp bool) {
|
||||||
if withHelp {
|
if withHelp {
|
||||||
if os.Args[0] == cmd.Name() {
|
if os.Args[0] == cmd.Name() {
|
||||||
str += ". See '" + os.Args[0] + " --help'"
|
str += ".\nSee '" + os.Args[0] + " --help'"
|
||||||
} else {
|
} else {
|
||||||
str += ". See '" + os.Args[0] + " " + cmd.Name() + " --help'"
|
str += ".\nSee '" + os.Args[0] + " " + cmd.Name() + " --help'"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fmt.Fprintf(cmd.Out(), "docker: %s\n", str)
|
fmt.Fprintf(cmd.Out(), "docker: %s.\n", str)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parsed reports whether f.Parse has been called.
|
// Parsed reports whether f.Parse has been called.
|
||||||
|
|
Loading…
Reference in a new issue