]> ruderich.org/simon Gitweb - safcm/safcm.git/commitdiff
safcm: group_priority: use increasing priority values internally
authorSimon Ruderich <simon@ruderich.org>
Wed, 28 Apr 2021 05:51:16 +0000 (07:51 +0200)
committerSimon Ruderich <simon@ruderich.org>
Wed, 28 Apr 2021 05:53:22 +0000 (07:53 +0200)
It feels more natural that groups with higher priority have a higher
numeric value.

cmd/safcm/sync_sync.go

index 930a263998566c3a71563b30c1e374f6ada06ecb..f07d07f68f4e901c57d78239f78c27cc21bd5bd5 100644 (file)
@@ -83,7 +83,7 @@ func (s *Sync) hostSyncReq(detectedGroups []string) (
                sort.Slice(priorities, func(i, j int) bool {
                        a := priorities[i]
                        b := priorities[j]
-                       return groupPriority[a] < groupPriority[b]
+                       return groupPriority[a] > groupPriority[b]
                })
                s.logVerbosef("host group priorities (desc. priority): %v",
                        strings.Join(priorities, " "))
@@ -189,18 +189,18 @@ func (s *Sync) resolveHostGroups(detectedGroups []string) (
        // Early entries have higher priorities
        groupPriority := make(map[string]int)
        for i, x := range s.config.GroupPriority {
-               groupPriority[x] = math.MinInt32 + i + 1
+               groupPriority[x] = len(s.config.GroupPriority) - i
        }
        // Host itself always has highest priority
-       groupPriority[s.host.Name] = math.MinInt32
+       groupPriority[s.host.Name] = math.MaxInt32
 
        // Sort groups after priority and name
        sort.Slice(groups, func(i, j int) bool {
                a := groups[i]
                b := groups[j]
-               if groupPriority[a] > groupPriority[b] {
+               if groupPriority[a] < groupPriority[b] {
                        return true
-               } else if groupPriority[a] < groupPriority[b] {
+               } else if groupPriority[a] > groupPriority[b] {
                        return false
                } else {
                        return a < b
@@ -220,7 +220,7 @@ func (s *Sync) checkFileConflict(group string, path string, file *safcm.File,
 
        newPrio := groupPriority[group]
        oldPrio := groupPriority[old.OrigGroup]
-       if oldPrio > newPrio {
+       if oldPrio < newPrio {
                if old.Mode.IsDir() && file.Mode.IsDir() &&
                        old.TriggerCommands != nil {
                        s.logDebugf("files: %q: "+
@@ -228,7 +228,7 @@ func (s *Sync) checkFileConflict(group string, path string, file *safcm.File,
                                path, group, old.OrigGroup)
                }
                return nil
-       } else if oldPrio < newPrio {
+       } else if oldPrio > newPrio {
                // Should never happen, groups are sorted by priority
                panic("invalid group priorities")
        }