1
0
mirror of https://github.com/golang/go synced 2024-11-19 21:34:45 -07:00

flag: document that custom usage functions are free to call os.Exit

Some custom usage functions call it for clarity; others rely on the default
behavior, which makes an explicit call redundant. Document that it's
safe to be explicit.

Fixes #21671.

Change-Id: I08e9f47265582821cfd35995dff0c589cd85809d
Reviewed-on: https://go-review.googlesource.com/59792
Reviewed-by: Dominik Honnef <dominik@honnef.co>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Rob Pike 2017-08-29 13:46:38 +10:00
parent 931c43328a
commit 305fd9179d

View File

@ -269,7 +269,9 @@ const (
type FlagSet struct { 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. What happens after Usage is called depends
// on the ErrorHandling setting; for the command line, this defaults
// to ExitOnError, which exits the program after calling Usage.
Usage func() Usage func()
name string name string
@ -521,6 +523,9 @@ func (f *FlagSet) defaultUsage() {
// The function is a variable that may be changed to point to a custom function. // The function is a variable that may be changed to point to a custom function.
// By default it prints a simple header and calls PrintDefaults; for details about the // By default it prints a simple header and calls PrintDefaults; for details about the
// format of the output and how to control it, see the documentation for PrintDefaults. // format of the output and how to control it, see the documentation for PrintDefaults.
// Custom usage functions may choose to exit the program; by default exiting
// happens anyway as the command line's error handling strategy is set to
// ExitOnError.
var Usage = func() { var Usage = func() {
fmt.Fprintf(CommandLine.out(), "Usage of %s:\n", os.Args[0]) fmt.Fprintf(CommandLine.out(), "Usage of %s:\n", os.Args[0])
PrintDefaults() PrintDefaults()