From 42719624a83196ea406a85b6784a91a3f4c91774 Mon Sep 17 00:00:00 2001 From: DJRHails Date: Tue, 19 May 2020 12:40:19 +0100 Subject: [PATCH] Refactor to for-loop --- src/main.rs | 43 +++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/src/main.rs b/src/main.rs index 761b71e..4bb1287 100644 --- a/src/main.rs +++ b/src/main.rs @@ -75,31 +75,26 @@ fn run() -> Result { .unwrap_or(""); // Get one or more root directories to search. - let mut dir_vec: Vec<_> = match matches + let passed_arguments = matches .values_of_os("path") - .or_else(|| matches.values_of_os("search-path")) - { - Some(paths) => paths - .map(|path| { - let path_buffer = PathBuf::from(path); - if filesystem::is_dir(&path_buffer) { - Ok(path_buffer) - } else { - Err(anyhow!( - "Search path '{}' is not a directory.", - path_buffer.to_string_lossy() - )) - } - }) - .inspect(|res| { - if let Err(e) = res { - print_error(format!("{}", e)) - } - }) - .filter_map(Result::ok) - .collect::>(), - None => vec![current_directory.to_path_buf()], - }; + .or_else(|| matches.values_of_os("search-path")); + + // Assign current directory to search vector. + let mut dir_vec: Vec<_> = vec![current_directory.to_path_buf()]; + + // Assign any valid arguments to search vector. + if let Some(paths) = passed_arguments { + dir_vec = vec![]; + for path in paths { + let path_buffer = PathBuf::from(path); + if filesystem::is_dir(&path_buffer) { + dir_vec.push(path_buffer); + } + else { + print_error(format!("Search path '{}' is not a directory.", path_buffer.to_string_lossy())); + } + } + } if matches.is_present("absolute-path") { dir_vec = dir_vec