X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=cmd%2Fsafcm%2Fconfig%2Ffiles.go;h=7ffa8b201cfeb5548cb0d2356f19677931218542;hb=afb7e8e2c886c9907f9aee8f9c32baabcbbcf997;hp=08b2dbf28d28ab7758f313b8f29931a3e72eb463;hpb=f2f2bc47e8729548f3c10117f7f008b547c4afc5;p=safcm%2Fsafcm.git diff --git a/cmd/safcm/config/files.go b/cmd/safcm/config/files.go index 08b2dbf..7ffa8b2 100644 --- a/cmd/safcm/config/files.go +++ b/cmd/safcm/config/files.go @@ -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,