]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - remote/sync/files.go
remote: support creating files with missing parents in dry-run
[safcm/safcm.git] / remote / sync / files.go
index ff35458c9aba095769e646c5d3ed4e0ae593469d..56c9ff0003af3c35d9153ba471655479bbc33efe 100644 (file)
@@ -1,6 +1,6 @@
 // MsgSyncReq: copy files to the remote host
 
-// Copyright (C) 2021-2022  Simon Ruderich
+// Copyright (C) 2021-2023  Simon Ruderich
 //
 // This program is free software: you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -132,6 +132,14 @@ func (s *Sync) syncFile(file *safcm.File, changed *bool) error {
 
        parentFd, baseName, err := OpenParentDirectoryNoSymlinks(file.Path)
        if err != nil {
+               if os.IsNotExist(err) && s.req.DryRun {
+                       change.Created = true
+                       debugf("will create (parent missing)")
+                       *changed = true
+                       debugf("dry-run, skipping changes")
+                       s.resp.FileChanges = append(s.resp.FileChanges, change)
+                       return nil
+               }
                return err
        }
        defer unix.Close(parentFd)