Skip to content

Commit ef500f2

Browse files
committed
Fill in tracing on command flag value accessor funcs
1 parent a5db8a9 commit ef500f2

10 files changed

+46
-12
lines changed

flag_float.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@ func (f *floatValue) String() string { return strconv.FormatFloat(float64(*f), '
3939
// 0 if not found
4040
func (cmd *Command) Float(name string) float64 {
4141
if v, ok := cmd.Value(name).(float64); ok {
42+
tracef("float available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name)
4243
return v
4344
}
45+
46+
tracef("float NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name)
4447
return 0
4548
}

flag_float_slice.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,22 @@ var NewFloatSlice = NewSliceBase[float64, NoConfig, floatValue]
1212
// FloatSlice looks up the value of a local FloatSliceFlag, returns
1313
// nil if not found
1414
func (cmd *Command) FloatSlice(name string) []float64 {
15-
if fs := cmd.lookupFlagSet(name); fs != nil {
16-
return lookupFloatSlice(name, fs)
15+
if flSet := cmd.lookupFlagSet(name); flSet != nil {
16+
return lookupFloatSlice(name, flSet, cmd.Name)
1717
}
18+
1819
return nil
1920
}
2021

21-
func lookupFloatSlice(name string, set *flag.FlagSet) []float64 {
22-
f := set.Lookup(name)
23-
if f != nil {
24-
if slice, ok := f.Value.(flag.Getter).Get().([]float64); ok {
25-
return slice
22+
func lookupFloatSlice(name string, set *flag.FlagSet, cmdName string) []float64 {
23+
fl := set.Lookup(name)
24+
if fl != nil {
25+
if v, ok := fl.Value.(flag.Getter).Get().([]float64); ok {
26+
tracef("float slice available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmdName)
27+
return v
2628
}
2729
}
30+
31+
tracef("float slice NOT available for flag name %[1]q (cmd=%[2]q)", name, cmdName)
2832
return nil
2933
}

flag_int.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ func (i *intValue) String() string { return strconv.FormatInt(int64(*i.val), 10)
5050
// 0 if not found
5151
func (cmd *Command) Int(name string) int64 {
5252
if v, ok := cmd.Value(name).(int64); ok {
53+
tracef("int available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name)
5354
return v
5455
}
56+
57+
tracef("int NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name)
5558
return 0
5659
}

flag_int_slice.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@ var NewIntSlice = NewSliceBase[int64, IntegerConfig, intValue]
99
// nil if not found
1010
func (cmd *Command) IntSlice(name string) []int64 {
1111
if v, ok := cmd.Value(name).([]int64); ok {
12+
tracef("int slice available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name)
1213
return v
1314
}
1415

16+
tracef("int slice NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name)
1517
return nil
1618
}

flag_string.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,10 @@ func (s *stringValue) String() string {
5757

5858
func (cmd *Command) String(name string) string {
5959
if v, ok := cmd.Value(name).(string); ok {
60+
tracef("string available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name)
6061
return v
6162
}
63+
64+
tracef("string NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name)
6265
return ""
6366
}

flag_string_map.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ var NewStringMap = NewMapBase[string, StringConfig, stringValue]
99
// nil if not found
1010
func (cmd *Command) StringMap(name string) map[string]string {
1111
if v, ok := cmd.Value(name).(map[string]string); ok {
12+
tracef("string map available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name)
1213
return v
1314
}
15+
16+
tracef("string map NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name)
1417
return nil
1518
}

flag_string_slice.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ var NewStringSlice = NewSliceBase[string, StringConfig, stringValue]
99
// nil if not found
1010
func (cmd *Command) StringSlice(name string) []string {
1111
if v, ok := cmd.Value(name).([]string); ok {
12+
tracef("string slice available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name)
1213
return v
1314
}
15+
16+
tracef("string slice NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name)
1417
return nil
1518
}

flag_timestamp.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,23 @@ func (t *timestampValue) Get() any {
8787
// Timestamp gets the timestamp from a flag name
8888
func (cmd *Command) Timestamp(name string) *time.Time {
8989
if fs := cmd.lookupFlagSet(name); fs != nil {
90-
return lookupTimestamp(name, fs)
90+
return lookupTimestamp(name, fs, cmd.Name)
9191
}
9292
return nil
9393
}
9494

9595
// Fetches the timestamp value from the local timestampWrap
96-
func lookupTimestamp(name string, set *flag.FlagSet) *time.Time {
97-
f := set.Lookup(name)
98-
if f != nil {
99-
return (f.Value.(*timestampValue)).Value()
96+
func lookupTimestamp(name string, set *flag.FlagSet, cmdName string) *time.Time {
97+
fl := set.Lookup(name)
98+
if fl != nil {
99+
if tv, ok := fl.Value.(*timestampValue); ok {
100+
v := tv.Value()
101+
102+
tracef("timestamp available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmdName)
103+
return v
104+
}
100105
}
106+
107+
tracef("timestamp NOT available for flag name %[1]q (cmd=%[2]q)", name, cmdName)
101108
return nil
102109
}

flag_uint.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ func (i *uintValue) String() string { return strconv.FormatUint(uint64(*i.val),
4545
// 0 if not found
4646
func (cmd *Command) Uint(name string) uint64 {
4747
if v, ok := cmd.Value(name).(uint64); ok {
48+
tracef("uint available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name)
4849
return v
4950
}
51+
52+
tracef("uint NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name)
5053
return 0
5154
}

flag_uint_slice.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ var NewUintSlice = NewSliceBase[uint64, IntegerConfig, uintValue]
99
// nil if not found
1010
func (cmd *Command) UintSlice(name string) []uint64 {
1111
if v, ok := cmd.Value(name).([]uint64); ok {
12+
tracef("uint slice available for flag name %[1]q with value=%[2]v (cmd=%[3]q)", name, v, cmd.Name)
1213
return v
1314
}
15+
16+
tracef("uint slice NOT available for flag name %[1]q (cmd=%[2]q)", name, cmd.Name)
1417
return nil
1518
}

0 commit comments

Comments
 (0)