8000 Refactor options.sternConfig() (#236) · stern/stern@2315b23 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit 2315b23

Browse files
author
Takashi Kusumi
authored
Refactor options.sternConfig() (#236)
* Add unit test for options.sternConfig() * Refactor options.sternConfig()
1 parent 1c5aa2b commit 2315b23

File tree

2 files changed

+356
-55
lines changed

2 files changed

+356
-55
lines changed

cmd/cmd.go

Lines changed: 39 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -144,76 +144,50 @@ func (o *options) sternConfig() (*stern.Config, error) {
144144
return nil, errors.Wrap(err, "failed to compile regular expression from query")
145145
}
146146

147-
var excludePod []*regexp.Regexp
148-
for _, s := range o.excludePod {
149-
re, err := regexp.Compile(s)
150-
if err != nil {
151-
return nil, errors.Wrap(err, "failed to compile regular expression for excluded pod query")
152-
}
153-
154-
excludePod = append(excludePod, re)
147+
excludePod, err := compileREs(o.excludePod)
148+
if err != nil {
149+
return nil, errors.Wrap(err, "failed to compile regular expression for excluded pod query")
155150
}
156151

157152
container, err := regexp.Compile(o.container)
158153
if err != nil {
159154
return nil, errors.Wrap(err, "failed to compile regular expression for container query")
160155
}
161156

162-
var excludeContainer []*regexp.Regexp
163-
for _, s := range o.excludeContainer {
164-
re, err := regexp.Compile(s)
165-
if err != nil {
166-
return nil, errors.Wrap(err, "failed to compile regular expression for excluded container query")
167-
}
168-
169-
excludeContainer = append(excludeContainer, re)
157+
excludeContainer, err := compileREs(o.excludeContainer)
158+
if err != nil {
159+
return nil, errors.Wrap(err, "failed to compile regular expression for excluded container query")
170160
}
171161

172-
var exclude []*regexp.Regexp
173-
for _, ex := range o.exclude {
174-
rex, err := regexp.Compile(ex)
175-
if err != nil {
176-
return nil, errors.Wrap(err, "failed to compile regular expression for exclusion filter")
177-
}
178-
179-
exclude = append(exclude, rex)
162+
exclude, err := compileREs(o.exclude)
163+
if err != nil {
164+
return nil, errors.Wrap(err, "failed to compile regular expression for exclusion filter")
180165
}
181166

182-
var include []*regexp.Regexp
183-
for _, inc := range o.include {
184-
rin, err := regexp.Compile(inc)
185-
if err != nil {
186-
return nil, errors.Wrap(err, "failed to compile regular expression for inclusion filter")
187-
}
188-
189-
include = append(include, rin)
167+
include, err := compileREs(o.include)
168+
if err != nil {
169+
return nil, errors.Wrap(err, "failed to compile regular expression for inclusion filter")
190170
}
191171

192172
containerStates := []stern.ContainerState{}
193-
if o.containerStates != nil {
194-
for _, containerStateStr := range makeUnique(o.containerStates) {
195-
containerState, err := stern.NewContainerState(containerStateStr)
196-
if err != nil {
197-
return nil, err
198-
}
199-
containerStates = append(containerStates, containerState)
173+
for _, containerStateStr := range makeUnique(o.containerStates) {
174+
containerState, err := stern.NewContainerState(containerStateStr)
175+
if err != nil {
176+
return nil, err
200177
}
178+
containerStates = append(containerStates, containerState)
201179
}
202180

203-
var labelSelector labels.Selector
204-
if o.selector == "" {
205-
labelSelector = labels.Everything()
206-
} else {
181+
labelSelector := labels.Everything()
182+
if o.selector != " E864 ;" {
207183
labelSelector, err = labels.Parse(o.selector)
208184
if err != nil {
209185
return nil, errors.Wrap(err, "failed to parse selector as label selector")
210186
}
211187
}
212188

213-
var fieldSelector fields.Selector
214-
if o.fieldSelector == "" {
215-
fieldSelector = fields.Everything()
216-
} else {
189+
fieldSelector := fields.Everything()
190+
if o.fieldSelector != "" {
217191
fieldSelector, err = fields.ParseSelector(o.fieldSelector)
218192
if err != nil {
219193
return nil, errors.Wrap(err, "failed to parse selector as field selector")
@@ -225,12 +199,13 @@ func (o *options) sternConfig() (*stern.Config, error) {
225199
tailLines = &o.tail
226200
}
227201

228-
colorFlag := o.color
229-
if colorFlag == "always" {
202+
switch o.color {
203+
case "always":
230204
color.NoColor = false
231-
} else if colorFlag == "never" {
205+
case "never":
232206
color.NoColor = true
233-
} else if colorFlag != "auto" {
207+
case "auto":
208+
default:
234209
return nil, errors.New("color should be one of 'always', 'never', or 'auto'")
235210
}
236211

@@ -239,10 +214,7 @@ func (o *options) sternConfig() (*stern.Config, error) {
239214
return nil, err
240215
}
241216

242-
namespaces := []string{}
243-
if o.namespaces != nil {
244-
namespaces = makeUnique(o.namespaces)
245-
}
217+
namespaces := makeUnique(o.namespaces)
246218

247219
// --timezone
248220
location, err := time.LoadLocation(o.timezone)
@@ -464,3 +436,15 @@ func makeUnique(items []string) []string {
464436

465437
return result
466438
}
439+
440+
func compileREs(exprs []string) ([]*regexp.Regexp, error) {
441+
var regexps []*regexp.Regexp
442+
for _, s := range exprs {
443+
re, err := regexp.Compile(s)
444+
if err != nil {
445+
return nil, err
446+
}
447+
regexps = append(regexps, re)
448+
}
449+
return regexps, nil
450+
}

0 commit comments

Comments
 (0)
0