]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm/sync_sync.go
config: rename group_order to group_priority
[safcm/safcm.git] / cmd / safcm / sync_sync.go
index e84b7f416c07b84df027f017c826d8b381324d4a..930a263998566c3a71563b30c1e374f6ada06ecb 100644 (file)
@@ -19,6 +19,7 @@ package main
 
 import (
        "fmt"
+       "math"
        "os"
        "path/filepath"
        "sort"
@@ -44,26 +45,9 @@ func (s *Sync) hostSync(conn *rpc.Conn, detectedGroups []string) error {
        }
 
        // Display changes
-       var changes []string
-       if len(resp.FileChanges) > 0 {
-               changes = append(changes,
-                       s.formatFileChanges(resp.FileChanges))
-       }
-       if len(resp.PackageChanges) > 0 {
-               changes = append(changes,
-                       s.formatPackageChanges(resp.PackageChanges))
-       }
-       if len(resp.ServiceChanges) > 0 {
-               changes = append(changes,
-                       s.formatServiceChanges(resp.ServiceChanges))
-       }
-       if len(resp.CommandChanges) > 0 {
-               changes = append(changes,
-                       s.formatCommandChanges(resp.CommandChanges))
-       }
-       if len(changes) > 0 {
-               s.logf(safcm.LogInfo, true, "%s",
-                       "\n"+strings.Join(changes, "\n"))
+       changes := s.formatChanges(resp)
+       if changes != "" {
+               s.logf(safcm.LogInfo, true, "%s", changes)
        }
 
        if resp.Error != "" {
@@ -82,8 +66,8 @@ func (s *Sync) hostSyncReq(detectedGroups []string) (
                return empty, err
        }
        {
-               // Don't leak internal group order which is confusing without
-               // knowing the implementation details.
+               // Don't leak internal group priority which is confusing
+               // without knowing the implementation details.
                groupsSorted := make([]string, len(groups))
                copy(groupsSorted, groups)
                sort.Strings(groupsSorted)
@@ -101,14 +85,14 @@ func (s *Sync) hostSyncReq(detectedGroups []string) (
                        b := priorities[j]
                        return groupPriority[a] < groupPriority[b]
                })
-               s.logVerbosef("host group priorities (desc. order): %v",
+               s.logVerbosef("host group priorities (desc. priority): %v",
                        strings.Join(priorities, " "))
        }
 
        allFiles := make(map[string]*safcm.File)
        allPackagesMap := make(map[string]bool) // map to deduplicate
        allServicesMap := make(map[string]bool) // map to deduplicate
-       var allCommands []string
+       var allCommands []*safcm.Command
 
        for _, group := range groups {
                // Skip non-existent group directories
@@ -204,11 +188,11 @@ func (s *Sync) resolveHostGroups(detectedGroups []string) (
 
        // Early entries have higher priorities
        groupPriority := make(map[string]int)
-       for i, x := range s.config.GroupOrder {
-               groupPriority[x] = i + 1
+       for i, x := range s.config.GroupPriority {
+               groupPriority[x] = math.MinInt32 + i + 1
        }
        // Host itself always has highest priority
-       groupPriority[s.host.Name] = -1
+       groupPriority[s.host.Name] = math.MinInt32
 
        // Sort groups after priority and name
        sort.Slice(groups, func(i, j int) bool {
@@ -258,7 +242,7 @@ func (s *Sync) checkFileConflict(group string, path string, file *safcm.File,
        }
 
        return fmt.Errorf("groups %s and %s both provide file %q\n"+
-               "Use 'group_order' in config.yaml to declare preference",
+               "Use 'group_priority' in config.yaml to declare preference",
                group, old.OrigGroup, path)
 }
 
@@ -273,9 +257,9 @@ func resolveFileDirConflicts(files map[string]*safcm.File) {
 
        const sep = string(filepath.Separator)
 
-       // Remove invalid paths which can result from group_order overriding
-       // paths from another group (e.g. "/foo" as file from one group and
-       // "/foo/bar" from another).
+       // Remove invalid paths which can result from group_priority
+       // overriding paths from another group (e.g. "/foo" as file from one
+       // group and "/foo/bar" from another).
        var last *safcm.File
        for _, x := range paths {
                file := files[x]