@@ -36,12 +36,14 @@ import (
36
36
37
37
func NewFlagEnvHandler (fs * flag.FlagSet ) FlagEnvHandler {
38
38
return flagEnvHandler {
39
- fs : fs ,
39
+ fs : fs ,
40
+ visible : true ,
40
41
}
41
42
}
42
43
43
44
type FlagEnvHandler interface {
44
45
WithPrefix (prefix string ) FlagEnvHandler
46
+ WithVisibility (visible bool ) FlagEnvHandler
45
47
46
48
StringVar (p * string , name string , value string , usage string ) error
47
49
String (name string , value string , usage string ) error
@@ -60,8 +62,9 @@ type FlagEnvHandler interface {
60
62
}
61
63
62
64
type flagEnvHandler struct {
63
- prefix string
64
- fs * flag.FlagSet
65
+ prefix string
66
+ visible bool
67
+ fs * flag.FlagSet
65
68
}
66
69
67
70
func (f flagEnvHandler ) StringVar (p * string , name string , value string , usage string ) error {
@@ -70,7 +73,15 @@ func (f flagEnvHandler) StringVar(p *string, name string, value string, usage st
70
73
return err
71
74
}
72
75
73
- f .fs .StringVar (p , f .name (name ), v , f .varDesc (name , usage ))
76
+ fname := f .name (name )
77
+
78
+ f .fs .StringVar (p , fname , v , f .varDesc (name , usage ))
79
+
80
+ if ! f .visible {
81
+ if err := f .fs .MarkHidden (fname ); err != nil {
82
+ return err
83
+ }
84
+ }
74
85
75
86
return nil
76
87
}
@@ -81,7 +92,15 @@ func (f flagEnvHandler) String(name string, value string, usage string) error {
81
92
return err
82
93
}
83
94
84
- f .fs .String (f .name (name ), v , f .varDesc (name , usage ))
95
+ fname := f .name (name )
96
+
97
+ f .fs .String (fname , v , f .varDesc (name , usage ))
98
+
99
+ if ! f .visible {
100
+ if err := f .fs .MarkHidden (fname ); err != nil {
101
+ return err
102
+ }
103
+ }
85
104
86
105
return nil
87
106
}
@@ -92,7 +111,15 @@ func (f flagEnvHandler) StringSliceVar(p *[]string, name string, value []string,
92
111
return err
93
112
}
94
113
95
- f .fs .StringSliceVar (p , f .name (name ), v , f .varDesc (name , usage ))
114
+ fname := f .name (name )
115
+
116
+ f .fs .StringSliceVar (p , fname , v , f .varDesc (name , usage ))
117
+
118
+ if ! f .visible {
119
+ if err := f .fs .MarkHidden (fname ); err != nil {
120
+ return err
121
+ }
122
+ }
96
123
97
124
return nil
98
125
}
@@ -103,7 +130,15 @@ func (f flagEnvHandler) StringSlice(name string, value []string, usage string) e
103
130
return err
104
131
}
105
132
106
- f .fs .StringSlice (f .name (name ), v , f .varDesc (name , usage ))
133
+ fname := f .name (name )
134
+
135
+ f .fs .StringSlice (fname , v , f .varDesc (name , usage ))
136
+
137
+ if ! f .visible {
138
+ if err := f .fs .MarkHidden (fname ); err != nil {
139
+ return err
140
+ }
141
+ }
107
142
108
143
return nil
109
144
}
@@ -114,7 +149,15 @@ func (f flagEnvHandler) BoolVar(p *bool, name string, value bool, usage string)
114
149
return err
115
150
}
116
151
117
- f .fs .BoolVar (p , f .name (name ), v , f .varDesc (name , usage ))
152
+ fname := f .name (name )
153
+
154
+ f .fs .BoolVar (p , fname , v , f .varDesc (name , usage ))
155
+
156
+ if ! f .visible {
157
+ if err := f .fs .MarkHidden (fname ); err != nil {
158
+ return err
159
+ }
160
+ }
118
161
119
162
return nil
120
163
}
@@ -125,7 +168,15 @@ func (f flagEnvHandler) Bool(name string, value bool, usage string) error {
125
168
return err
126
169
}
127
170
128
- f .fs .Bool (f .name (name ), v , f .varDesc (name , usage ))
171
+ fname := f .name (name )
172
+
173
+ f .fs .Bool (fname , v , f .varDesc (name , usage ))
174
+
175
+ if ! f .visible {
176
+ if err := f .fs .MarkHidden (fname ); err != nil {
177
+ return err
178
+ }
179
+ }
129
180
130
181
return nil
131
182
}
@@ -136,7 +187,15 @@ func (f flagEnvHandler) DurationVar(p *time.Duration, name string, value time.Du
136
187
return err
137
188
}
138
189
139
- f .fs .DurationVar (p , f .name (name ), v , f .varDesc (name , usage ))
190
+ fname := f .name (name )
191
+
192
+ f .fs .DurationVar (p , fname , v , f .varDesc (name , usage ))
193
+
194
+ if ! f .visible {
195
+ if err := f .fs .MarkHidden (fname ); err != nil {
196
+ return err
197
+ }
198
+ }
140
199
141
200
return nil
142
201
}
@@ -147,7 +206,15 @@ func (f flagEnvHandler) Duration(name string, value time.Duration, usage string)
147
206
return err
148
207
}
149
208
150
- f .fs .Duration (f .name (name ), v , f .varDesc (name , usage ))
209
+ fname := f .name (name )
210
+
211
+ f .fs .Duration (fname , v , f .varDesc (name , usage ))
212
+
213
+ if ! f .visible {
214
+ if err := f .fs .MarkHidden (fname ); err != nil {
215
+ return err
216
+ }
217
+ }
151
218
152
219
return nil
153
220
}
@@ -158,7 +225,15 @@ func (f flagEnvHandler) Uint16Var(p *uint16, name string, value uint16, usage st
158
225
return err
159
226
}
160
227
161
- f .fs .Uint16Var (p , f .name (name ), v , f .varDesc (name , usage ))
228
+ fname := f .name (name )
229
+
230
+ f .fs .Uint16Var (p , fname , v , f .varDesc (name , usage ))
231
+
232
+ if ! f .visible {
233
+ if err := f .fs .MarkHidden (fname ); err != nil {
234
+ return err
235
+ }
236
+ }
162
237
163
238
return nil
164
239
}
@@ -169,7 +244,15 @@ func (f flagEnvHandler) Uint16(name string, value uint16, usage string) error {
169
244
return err
170
245
}
171
246
172
- f .fs .Uint16 (f .name (name ), v , f .varDesc (name , usage ))
247
+ fname := f .name (name )
248
+
249
+ f .fs .Uint16 (fname , v , f .varDesc (name , usage ))
250
+
251
+ if ! f .visible {
252
+ if err := f .fs .MarkHidden (fname ); err != nil {
253
+ return err
254
+ }
255
+ }
173
256
174
257
return nil
175
258
}
@@ -198,8 +281,17 @@ func (f flagEnvHandler) name(n string) string {
198
281
199
282
func (f flagEnvHandler ) WithPrefix (prefix string ) FlagEnvHandler {
200
283
return flagEnvHandler {
201
- prefix : f .name (prefix ),
202
- fs : f .fs ,
284
+ prefix : f .name (prefix ),
285
+ fs : f .fs ,
286
+ visible : f .visible ,
287
+ }
288
+ }
289
+
290
+ func (f flagEnvHandler ) WithVisibility (visible bool ) FlagEnvHandler {
291
+ return flagEnvHandler {
292
+ prefix : f .prefix ,
293
+ fs : f .fs ,
294
+ visible : visible ,
203
295
}
204
296
}
205
297
0 commit comments