From 176442eb1554a674dfa291585abd5eb54aa213d8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 12 Mar 2021 09:50:39 +0200 Subject: fix: backup and restore of symlink --- src/cmd/restore.rs | 6 ++---- src/fsiter.rs | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/cmd/restore.rs b/src/cmd/restore.rs index cb42114..147c422 100644 --- a/src/cmd/restore.rs +++ b/src/cmd/restore.rs @@ -168,11 +168,9 @@ fn restore_symlink(path: &Path, entry: &FilesystemEntry) -> RestoreResult<()> { debug!(" mkdir {}", parent.display()); if !parent.exists() { std::fs::create_dir_all(parent)?; - { - symlink(path, entry.symlink_target().unwrap())?; - } } - debug!("restored regular {}", path.display()); + symlink(entry.symlink_target().unwrap(), path)?; + debug!("restored symlink {}", path.display()); Ok(()) } diff --git a/src/fsiter.rs b/src/fsiter.rs index f59fb64..57b6fd5 100644 --- a/src/fsiter.rs +++ b/src/fsiter.rs @@ -45,7 +45,7 @@ impl Iterator for FsIterator { fn new_entry(e: &DirEntry) -> FsIterResult { let path = e.path(); - let meta = std::fs::metadata(path); + let meta = std::fs::symlink_metadata(path); debug!("metadata for {:?}: {:?}", path, meta); let meta = match meta { Ok(meta) => meta, -- cgit v1.2.1