Skip to content

Commit 31e3c28

Browse files
idsulikglours
authored andcommitted
feat: Add wildcard support for services name
Signed-off-by: Suleiman Dibirov <[email protected]>
1 parent bcdb61a commit 31e3c28

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
@@ -190,16 +190,25 @@ func (p *Project) getServicesByNames(names ...string) (Services, []string) {
190190
if len(names) == 0 {
191191
return p.Services, nil
192192
}
193+
193194
services := Services{}
194195
var servicesNotFound []string
195196
for _, name := range names {
196-
service, ok := p.Services[name]
197-
if !ok {
197+
matched := false
198+
199+
for serviceName, service := range p.Services {
200+
match, _ := filepath.Match(name, serviceName)
201+
if match {
202+
services[serviceName] = service
203+
matched = true
204+
}
205+
}
206+
207+
if !matched {
198208
servicesNotFound = append(servicesNotFound, name)
199-
continue
200209
}
201-
services[name] = service
202210
}
211+
203212
return services, servicesNotFound
204213
}
205214

types/project_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"errors"
2222
"fmt"
2323
"slices"
24+
"sort"
2425
"strings"
2526
"testing"
2627

@@ -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.Equal(t, len(p.ServicesWithBuild()), 0)

0 commit comments

Comments
 (0)