From 93c0e8ecee430883c62120f9f0b6999acfac4435 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Sat, 5 Apr 2025 14:43:19 +0200 Subject: Update, panic less and propagate errors --- src/file_finder.rs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'src/file_finder.rs') diff --git a/src/file_finder.rs b/src/file_finder.rs index ef57950..08e86c4 100644 --- a/src/file_finder.rs +++ b/src/file_finder.rs @@ -9,18 +9,20 @@ pub fn find_files(directory_path: &PathBuf) -> Vec { fn find_files_recursively(root_path: &PathBuf, directory_path: &PathBuf) -> Vec { let mut result: Vec = vec![]; let file_handler = FileHandler::default(); - let entries = read_dir(directory_path).unwrap(); - for entry in entries { - let path = entry.unwrap().path(); - let relative_path = path.strip_prefix(root_path).unwrap(); - if relative_path.starts_with(".git") || relative_path.starts_with(".gitignore") { - continue; - } - if path.is_dir() { - result.append(&mut find_files_recursively(root_path, &path)); - } else { - let file_type = file_handler.identify(&path); - result.push(File { path, file_type }); + if let Ok(entries) = read_dir(directory_path) { + for entry in entries.flatten() { + let path = entry.path(); + if let Ok(relative_path) = path.strip_prefix(root_path) { + if relative_path.starts_with(".git") || relative_path.starts_with(".gitignore") { + continue; + } + if path.is_dir() { + result.append(&mut find_files_recursively(root_path, &path)); + } else { + let file_type = file_handler.identify(&path); + result.push(File { path, file_type }); + } + } } } result -- cgit