From 16c5952ee4b861460381f0e387f7e86352036fae Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Wed, 25 Sep 2024 10:55:55 -0300 Subject: [PATCH] fix: allow reading from special files (device, fifo, etc) (#886) --- src/utils/path.rs | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/utils/path.rs b/src/utils/path.rs index 83e51c79..e27b5eea 100644 --- a/src/utils/path.rs +++ b/src/utils/path.rs @@ -84,21 +84,18 @@ async fn list_files( if !entry_path.exists() { bail!("Not found: {}", entry_path.display()); } - if entry_path.is_file() { - add_file(files, suffixes, entry_path); - return Ok(()); - } - if !entry_path.is_dir() { - bail!("Not a directory: {:?}", entry_path); - } - let mut reader = tokio::fs::read_dir(entry_path).await?; - while let Some(entry) = reader.next_entry().await? { - let path = entry.path(); - if path.is_file() { - add_file(files, suffixes, &path); - } else if path.is_dir() { - list_files(files, &path, suffixes).await?; + if entry_path.is_dir() { + let mut reader = tokio::fs::read_dir(entry_path).await?; + while let Some(entry) = reader.next_entry().await? { + let path = entry.path(); + if path.is_dir() { + list_files(files, &path, suffixes).await?; + } else { + add_file(files, suffixes, &path); + } } + } else { + add_file(files, suffixes, entry_path); } Ok(()) }