From 32b321bf996a25858790b1639ac955eade67f552 Mon Sep 17 00:00:00 2001 From: Adam Finn Tulinius Date: Tue, 8 Sep 2020 15:27:42 +0200 Subject: [PATCH] tags: change --tagged require all tags --- filter/filter.go | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/filter/filter.go b/filter/filter.go index 06817d9..64714d6 100644 --- a/filter/filter.go +++ b/filter/filter.go @@ -37,18 +37,33 @@ func FilterHosts(allHosts []nix.Host, skip int, every int, limit int) (hosts []n } } +func hasTag(host nix.Host, tag string) bool { + for _, hostTag := range host.GetTags() { + if hostTag == tag { + return true + } + } + + return false +} + func FilterHostsTags(allHosts []nix.Host, selectedTags []string) (hosts []nix.Host) { if len(selectedTags) == 0 { return allHosts } + for _, host := range allHosts { - for _, tag := range host.GetTags() { - for _, selectTag := range selectedTags { - if tag == selectTag { - hosts = append(hosts, host) - break - } + include := true + for _, selectTag := range selectedTags { + if !hasTag(host, selectTag) { + include = false; + break } + + } + + if include { + hosts = append(hosts, host) } }