diff options
Diffstat (limited to 'sync.go')
| -rw-r--r-- | sync.go | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -141,6 +141,15 @@ func copyFile(src, dst string, mode os.FileMode) error { } defer dstFile.Close() - _, err = io.Copy(dstFile, srcFile) - return err + if _, err = io.Copy(dstFile, srcFile); err != nil { + return err + } + + // Preserve modtime so next sync comparison matches + srcInfo, err := os.Lstat(src) + if err != nil { + return nil // content copied, modtime is non-fatal + } + os.Chtimes(dst, srcInfo.ModTime(), srcInfo.ModTime()) + return nil } |
