Skip to content

Commit f2c7981

Browse files
ndeloofglours
authored andcommitted
introduce filter for GetDependentsForService
Signed-off-by: Nicolas De Loof <[email protected]>
1 parent 6ec1edc commit f2c7981

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

types/project.go

+13-4
Original file line numberDiff line numberDiff line change
@@ -298,16 +298,25 @@ func (p *Project) withServices(names []string, fn ServiceFunc, seen map[string]b
298298
return nil
299299
}
300300

301-
func (p *Project) GetDependentsForService(s ServiceConfig) []string {
302-
return utils.MapKeys(p.dependentsForService(s))
301+
func (p *Project) GetDependentsForService(s ServiceConfig, filter ...func(ServiceDependency) bool) []string {
302+
return utils.MapKeys(p.dependentsForService(s, filter...))
303303
}
304304

305-
func (p *Project) dependentsForService(s ServiceConfig) map[string]ServiceDependency {
305+
func (p *Project) dependentsForService(s ServiceConfig, filter ...func(ServiceDependency) bool) map[string]ServiceDependency {
306306
dependent := make(map[string]ServiceDependency)
307307
for _, service := range p.Services {
308308
for name, dependency := range service.DependsOn {
309309
if name == s.Name {
310-
dependent[service.Name] = dependency
310+
depends := true
311+
for _, f := range filter {
312+
if !f(dependency) {
313+
depends = false
314+
break
315+
}
316+
}
317+
if depends {
318+
dependent[service.Name] = dependency
319+
}
311320
}
312321
}
313322
}

0 commit comments

Comments
 (0)