]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm/config/groups.go
Use SPDX license identifiers
[safcm/safcm.git] / cmd / safcm / config / groups.go
index 571f19b7fcb10b5adcd4c5e406d6f22e5b585730..bb18b84e3a73a4d33ba521b92d336746ab51016e 100644 (file)
@@ -1,19 +1,7 @@
 // Config: parse groups.yaml
 
-// Copyright (C) 2021  Simon Ruderich
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright (C) 2021-2024  Simon Ruderich
 
 package config
 
@@ -131,7 +119,7 @@ func LoadGroups(cfg *Config, hosts *Hosts) (map[string][]string, error) {
 func ResolveHostGroups(host string, groups map[string][]string,
        detectedGroups []string) ([]string, error) {
 
-       const maxDepth = 100
+       const maxRecursionDepth = 100
 
        detectedGroupsMap := make(map[string]bool)
        for _, x := range detectedGroups {
@@ -143,7 +131,7 @@ func ResolveHostGroups(host string, groups map[string][]string,
        // groups).
        var lookup func(string, int) bool
        lookup = func(group string, depth int) bool {
-               if depth > maxDepth {
+               if depth > maxRecursionDepth {
                        cycle = &group
                        return false
                }
@@ -193,7 +181,7 @@ func ResolveHostGroups(host string, groups map[string][]string,
 // TransitivelyDetectedGroups returns all groups which depend on "detected"
 // groups, either directly or by depending on groups which transitively depend
 // on "detected" groups.
-func TransitivelyDetectedGroups(groups map[string][]string) []string {
+func TransitivelyDetectedGroups(groups map[string][]string) map[string]bool {
        work := make(map[string][]string)
        for k, v := range groups {
                work[k] = v
@@ -220,11 +208,5 @@ func TransitivelyDetectedGroups(groups map[string][]string) []string {
                        break
                }
        }
-
-       var res []string
-       for x := range detected {
-               res = append(res, x)
-       }
-       sort.Strings(res)
-       return res
+       return detected
 }