]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm/config/files.go
safcm: use only slash separated paths for the configuration
[safcm/safcm.git] / cmd / safcm / config / files.go
index 08b2dbf28d28ab7758f313b8f29931a3e72eb463..7ffa8b201cfeb5548cb0d2356f19677931218542 100644 (file)
@@ -21,7 +21,9 @@ import (
        "fmt"
        "io/fs"
        "os"
+       slashpath "path"
        "path/filepath"
+       "runtime"
 
        "ruderich.org/simon/safcm"
 )
@@ -30,6 +32,7 @@ func LoadFiles(group string) (map[string]*safcm.File, error) {
        basePath := filepath.Join(group, "files")
 
        const errMsg = `
+
 The actual permissions and user/group of files and directories are not used
 (except for +x on files). 0644/0755 and current remote user/group is used per
 default. Apply different file permissions via permissions.yaml. To prevent
@@ -78,16 +81,18 @@ via "safcm fixperms".
                                return err
                        }
                        data = []byte(x)
+                       perm |= 0777 // see cmd/safcm-remote/sync/files.go
                } else {
                        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,