diff options
-rw-r--r-- | src/cmd/restore.rs | 6 | ||||
-rw-r--r-- | 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<FilesystemEntry> { 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, |