Skip to content

Commit 67100e9

Browse files
committed
feat: Add wildcard support for services name
Signed-off-by: Suleiman Dibirov <[email protected]>
1 parent f2c7981 commit 67100e9

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

types/project.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,16 +188,25 @@ func (p *Project) getServicesByNames(names ...string) (Services, []string) {
188188
if len(names) == 0 {
189189
return p.Services, nil
190190
}
191+
191192
services := Services{}
192193
var servicesNotFound []string
193194
for _, name := range names {
194-
service, ok := p.Services[name]
195-
if !ok {
195+
matched := false
196+
197+
for serviceName, service := range p.Services {
198+
match, _ := filepath.Match(name, serviceName)
199+
if match {
200+
services[serviceName] = service
201+
matched = true
202+
}
203+
}
204+
205+
if !matched {
196206
servicesNotFound = append(servicesNotFound, name)
197-
continue
198207
}
199-
services[name] = service
200208
}
209+
201210
return services, servicesNotFound
202211
}
203212

types/project_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
_ "crypto/sha256"
2121
"errors"
2222
"fmt"
23+
"sort"
2324
"strings"
2425
"testing"
2526

@@ -281,6 +282,18 @@ func TestWithServices(t *testing.T) {
281282
assert.DeepEqual(t, seen, []string{"service_1", "service_2", "service_4"})
282283
}
283284

285+
func TestWithServicesWithWildcard(t *testing.T) {
286+
p := makeProject()
287+
var seen []string
288+
err := p.ForEachService([]string{"service_*"}, func(name string, _ *ServiceConfig) error {
289+
seen = append(seen, name)
290+
return nil
291+
}, IgnoreDependencies)
292+
assert.NilError(t, err)
293+
sort.Strings(seen)
294+
assert.DeepEqual(t, seen, []string{"service_1", "service_2", "service_3", "service_4", "service_5", "service_6"})
295+
}
296+
284297
func TestServicesWithBuild(t *testing.T) {
285298
p := makeProject()
286299
assert.DeepEqual(t, []string{}, p.ServicesWithBuild())

0 commit comments

Comments
 (0)