@@ -160,7 +160,7 @@ type FlagSet struct {
160
160
args []string // arguments after flags
161
161
argsLenAtDash int // len(args) when a '--' was located when parsing, or -1 if no --
162
162
errorHandling ErrorHandling
163
- output io.Writer // nil means stderr; use out () accessor
163
+ output io.Writer // nil means stderr; use Output () accessor
164
164
interspersed bool // allow interspersed option/non-option args
165
165
normalizeNameFunc func (f * FlagSet , name string ) NormalizedName
166
166
@@ -255,13 +255,20 @@ func (f *FlagSet) normalizeFlagName(name string) NormalizedName {
255
255
return n (f , name )
256
256
}
257
257
258
- func (f * FlagSet ) out () io.Writer {
258
+ // Output returns the destination for usage and error messages. os.Stderr is returned if
259
+ // output was not set or was set to nil.
260
+ func (f * FlagSet ) Output () io.Writer {
259
261
if f .output == nil {
260
262
return os .Stderr
261
263
}
262
264
return f .output
263
265
}
264
266
267
+ // Name returns the name of the flag set.
268
+ func (f * FlagSet ) Name () string {
269
+ return f .name
270
+ }
271
+
265
272
// SetOutput sets the destination for usage and error messages.
266
273
// If output is nil, os.Stderr is used.
267
274
func (f * FlagSet ) SetOutput (output io.Writer ) {
@@ -358,7 +365,7 @@ func (f *FlagSet) ShorthandLookup(name string) *Flag {
358
365
}
359
366
if len (name ) > 1 {
360
367
msg := fmt .Sprintf ("can not look up shorthand which is more than one ASCII character: %q" , name )
361
- fmt .Fprintf (f .out (), msg )
368
+ fmt .Fprintf (f .Output (), msg )
362
369
panic (msg )
363
370
}
364
371
c := name [0 ]
@@ -482,7 +489,7 @@ func (f *FlagSet) Set(name, value string) error {
482
489
}
483
490
484
491
if flag .Deprecated != "" {
485
- fmt .Fprintf (f .out (), "Flag --%s has been deprecated, %s\n " , flag .Name , flag .Deprecated )
492
+ fmt .Fprintf (f .Output (), "Flag --%s has been deprecated, %s\n " , flag .Name , flag .Deprecated )
486
493
}
487
494
return nil
488
495
}
@@ -523,7 +530,7 @@ func Set(name, value string) error {
523
530
// otherwise, the default values of all defined flags in the set.
524
531
func (f * FlagSet ) PrintDefaults () {
525
532
usages := f .FlagUsages ()
526
- fmt .Fprint (f .out (), usages )
533
+ fmt .Fprint (f .Output (), usages )
527
534
}
528
535
529
536
// defaultIsZeroValue returns true if the default value for this flag represents
@@ -758,7 +765,7 @@ func PrintDefaults() {
758
765
759
766
// defaultUsage is the default function to print a usage message.
760
767
func defaultUsage (f * FlagSet ) {
761
- fmt .Fprintf (f .out (), "Usage of %s:\n " , f .name )
768
+ fmt .Fprintf (f .Output (), "Usage of %s:\n " , f .name )
762
769
f .PrintDefaults ()
763
770
}
764
771
@@ -844,7 +851,7 @@ func (f *FlagSet) AddFlag(flag *Flag) {
844
851
_ , alreadyThere := f .formal [normalizedFlagName ]
845
852
if alreadyThere {
846
853
msg := fmt .Sprintf ("%s flag redefined: %s" , f .name , flag .Name )
847
- fmt .Fprintln (f .out (), msg )
854
+ fmt .Fprintln (f .Output (), msg )
848
855
panic (msg ) // Happens only if flags are declared with identical names
849
856
}
850
857
if f .formal == nil {
@@ -860,7 +867,7 @@ func (f *FlagSet) AddFlag(flag *Flag) {
860
867
}
861
868
if len (flag .Shorthand ) > 1 {
862
869
msg := fmt .Sprintf ("%q shorthand is more than one ASCII character" , flag .Shorthand )
863
- fmt .Fprintf (f .out (), msg )
870
+ fmt .Fprintf (f .Output (), msg )
864
871
panic (msg )
865
872
}
866
873
if f .shorthands == nil {
@@ -870,7 +877,7 @@ func (f *FlagSet) AddFlag(flag *Flag) {
870
877
used , alreadyThere := f .shorthands [c ]
871
878
if alreadyThere {
872
879
msg := fmt .Sprintf ("unable to redefine %q shorthand in %q flagset: it's already used for %q flag" , c , f .name , used .Name )
873
- fmt .Fprintf (f .out (), msg )
880
+ fmt .Fprintf (f .Output (), msg )
874
881
panic (msg )
875
882
}
876
883
f .shorthands [c ] = flag
@@ -909,7 +916,7 @@ func VarP(value Value, name, shorthand, usage string) {
909
916
func (f * FlagSet ) failf (format string , a ... interface {}) error {
910
917
err := fmt .Errorf (format , a ... )
911
918
if f .errorHandling != ContinueOnError {
912
- fmt .Fprintln (f .out (), err )
919
+ fmt .Fprintln (f .Output (), err )
913
920
f .usage ()
914
921
}
915
922
return err
@@ -1060,7 +1067,7 @@ func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parse
1060
1067
}
1061
1068
1062
1069
if flag .ShorthandDeprecated != "" {
1063
- fmt .Fprintf (f .out (), "Flag shorthand -%s has been deprecated, %s\n " , flag .Shorthand , flag .ShorthandDeprecated )
1070
+ fmt .Fprintf (f .Output (), "Flag shorthand -%s has been deprecated, %s\n " , flag .Shorthand , flag .ShorthandDeprecated )
1064
1071
}
1065
1072
1066
1073
err = fn (flag , value )
0 commit comments