X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=cmd%2Fsafcm%2Fsync_sync.go;h=7e4d225705eb46dae48c851d033d7364d4eff8cf;hb=ecbcb0132728cc18016819a214378b642d92278e;hp=f07d07f68f4e901c57d78239f78c27cc21bd5bd5;hpb=22b2572ad75a0bf6fb93a4655e71cf04328ec2a9;p=safcm%2Fsafcm.git diff --git a/cmd/safcm/sync_sync.go b/cmd/safcm/sync_sync.go index f07d07f..7e4d225 100644 --- a/cmd/safcm/sync_sync.go +++ b/cmd/safcm/sync_sync.go @@ -21,12 +21,12 @@ import ( "fmt" "math" "os" - "path/filepath" "sort" "strings" "ruderich.org/simon/safcm" "ruderich.org/simon/safcm/cmd/safcm/config" + "ruderich.org/simon/safcm/frontend" "ruderich.org/simon/safcm/rpc" ) @@ -45,9 +45,14 @@ func (s *Sync) hostSync(conn *rpc.Conn, detectedGroups []string) error { } // Display changes - changes := s.formatChanges(resp) + c := frontend.Changes{ + DryRun: s.config.DryRun, + Quiet: s.config.Quiet, + IsTTY: s.isTTY, + } + changes := c.FormatChanges(resp) if changes != "" { - s.logf(safcm.LogInfo, true, "%s", changes) + s.log(safcm.LogInfo, true, changes) } if resp.Error != "" { @@ -85,7 +90,7 @@ func (s *Sync) hostSyncReq(detectedGroups []string) ( b := priorities[j] return groupPriority[a] > groupPriority[b] }) - s.logVerbosef("host group priorities (desc. priority): %v", + s.logVerbosef("host group priorities (descending): %v", strings.Join(priorities, " ")) } @@ -186,7 +191,7 @@ func (s *Sync) resolveHostGroups(detectedGroups []string) ( return nil, nil, err } - // Early entries have higher priorities + // Early entries in "group_priority" have higher priorities groupPriority := make(map[string]int) for i, x := range s.config.GroupPriority { groupPriority[x] = len(s.config.GroupPriority) - i @@ -241,7 +246,7 @@ func (s *Sync) checkFileConflict(group string, path string, file *safcm.File, return nil } - return fmt.Errorf("groups %s and %s both provide file %q\n"+ + return fmt.Errorf("groups %s and %s both provide %q\n"+ "Use 'group_priority' in config.yaml to declare preference", group, old.OrigGroup, path) } @@ -255,7 +260,8 @@ func resolveFileDirConflicts(files map[string]*safcm.File) { return paths[i] < paths[j] }) - const sep = string(filepath.Separator) + // Slash separated paths are used for the configuration + const sep = "/" // Remove invalid paths which can result from group_priority // overriding paths from another group (e.g. "/foo" as file from one