diff options
-rw-r--r-- | src/bin/summain.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/bin/summain.rs b/src/bin/summain.rs index 9365243..dbf8452 100644 --- a/src/bin/summain.rs +++ b/src/bin/summain.rs @@ -55,6 +55,13 @@ async fn main() -> anyhow::Result<()> { } fn find(root: &Path, files: &mut Vec<PathBuf>) -> anyhow::Result<()> { + let meta = std::fs::symlink_metadata(root)?; + if meta.file_type().is_symlink() { + // Walkdir doesn't handle dangling symlinks so we handle all + // symlinks here. + files.push(root.to_path_buf()); + return Ok(()); + } for e in WalkDir::new(root) { files.push(e?.path().to_path_buf()); } |