]> ruderich.org/simon Gitweb - safcm/safcm.git/commitdiff
safcm: use only slash separated paths for the configuration
authorSimon Ruderich <simon@ruderich.org>
Thu, 13 May 2021 11:40:54 +0000 (13:40 +0200)
committerSimon Ruderich <simon@ruderich.org>
Thu, 13 May 2021 11:40:54 +0000 (13:40 +0200)
This change is in preparation to support running synchronizations from
Windows systems. However, Windows remotes won't be supported in the
foreseeable future.

cmd/safcm/config/files.go
cmd/safcm/sync_sync.go

index 8f637701a60735c25ebb63969d075b8e1526edd9..7ffa8b201cfeb5548cb0d2356f19677931218542 100644 (file)
@@ -21,7 +21,9 @@ import (
        "fmt"
        "io/fs"
        "os"
+       slashpath "path"
        "path/filepath"
+       "runtime"
 
        "ruderich.org/simon/safcm"
 )
@@ -84,12 +86,13 @@ via "safcm fixperms".
                        return fmt.Errorf("%q: file type not supported", path)
                }
 
-               // Convert to absolute path as used on the target host
+               // Convert to absolute and slash-separated path as used on the
+               // target host
                x, err := filepath.Rel(basePath, path)
                if err != nil {
                        return err
                }
-               x = filepath.Join("/", x)
+               x = slashpath.Join("/", filepath.ToSlash(x))
 
                files[x] = &safcm.File{
                        Path: x,
index 0d5a722d9ef59b0461550532adcef372725db767..3f0c30b0e88e88baa2044212ce0c84646b692ea9 100644 (file)
@@ -21,7 +21,6 @@ import (
        "fmt"
        "math"
        "os"
-       "path/filepath"
        "sort"
        "strings"
 
@@ -255,7 +254,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