diff options
Diffstat (limited to 'sync.go')
| -rw-r--r-- | sync.go | 23 |
1 files changed, 16 insertions, 7 deletions
@@ -2,7 +2,6 @@ package main import ( "io" - "log" "os" "path/filepath" "time" @@ -60,7 +59,8 @@ func initialSync(hostDir, dataDir string, stack *GitignoreStack, dryRun bool) (* if info.Mode()&os.ModeSymlink != 0 { linkTarget, err = os.Readlink(path) if err != nil { - return err + logError("readlink", relPath, err) + return nil } } @@ -73,23 +73,32 @@ func initialSync(hostDir, dataDir string, stack *GitignoreStack, dryRun bool) (* manifest.Files[relPath] = meta if dryRun { - log.Printf("[dry-run] would sync: %s", relPath) return nil } if info.IsDir() { - return os.MkdirAll(destPath, info.Mode()) + if err := os.MkdirAll(destPath, info.Mode()); err != nil { + logError("mkdir", relPath, err) + } + return nil } if err := os.MkdirAll(filepath.Dir(destPath), 0755); err != nil { - return err + logError("mkdir", filepath.Dir(relPath), err) + return nil } if linkTarget != "" { - return os.Symlink(linkTarget, destPath) + if err := os.Symlink(linkTarget, destPath); err != nil { + logError("symlink", relPath, err) + } + return nil } - return copyFile(path, destPath, info.Mode()) + if err := copyFileWithRetry(path, destPath, info.Mode()); err != nil { + logError("copy", relPath, err) + } + return nil }) return manifest, err |
