From 9b2dc4655df00696d025ee083cc3dc0c684a7a68 Mon Sep 17 00:00:00 2001 From: "andy.boot" Date: Wed, 4 Jun 2025 20:10:25 +0100 Subject: [PATCH] refactor: extract function --- src/main.rs | 73 ++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/src/main.rs b/src/main.rs index 01d022f..aae3703 100644 --- a/src/main.rs +++ b/src/main.rs @@ -295,40 +295,8 @@ fn main() { // Must have stopped indicator before we print to stderr indicator.stop(); - let final_errors = walk_data.errors.lock().unwrap(); - if !final_errors.file_not_found.is_empty() { - let err = final_errors - .file_not_found - .iter() - .map(|a| a.as_ref()) - .collect::>() - .join(", "); - eprintln!("No such file or directory: {}", err); - } - if !final_errors.no_permissions.is_empty() { - if config.get_print_errors(&options) { - let err = final_errors - .no_permissions - .iter() - .map(|a| a.as_ref()) - .collect::>() - .join(", "); - eprintln!("Did not have permissions for directories: {}", err); - } else { - eprintln!( - "Did not have permissions for all directories (add --print-errors to see errors)" - ); - } - } - if !final_errors.unknown_error.is_empty() { - let err = final_errors - .unknown_error - .iter() - .map(|a| a.as_ref()) - .collect::>() - .join(", "); - eprintln!("Unknown Error: {}", err); - } + let print_errors = config.get_print_errors(&options); + print_any_errors(print_errors, walk_data.errors); if let Some(root_node) = tree { if config.get_output_json(&options) { @@ -359,6 +327,43 @@ fn main() { } } +fn print_any_errors(print_errors: bool, errors: Arc>) { + let final_errors = errors.lock().unwrap(); + if !final_errors.file_not_found.is_empty() { + let err = final_errors + .file_not_found + .iter() + .map(|a| a.as_ref()) + .collect::>() + .join(", "); + eprintln!("No such file or directory: {}", err); + } + if !final_errors.no_permissions.is_empty() { + if print_errors { + let err = final_errors + .no_permissions + .iter() + .map(|a| a.as_ref()) + .collect::>() + .join(", "); + eprintln!("Did not have permissions for directories: {}", err); + } else { + eprintln!( + "Did not have permissions for all directories (add --print-errors to see errors)" + ); + } + } + if !final_errors.unknown_error.is_empty() { + let err = final_errors + .unknown_error + .iter() + .map(|a| a.as_ref()) + .collect::>() + .join(", "); + eprintln!("Unknown Error: {}", err); + } +} + fn init_rayon(stack_size: &Option, threads: &Option) { // Rayon seems to raise this error on 32-bit builds // The global thread pool has not been initialized.: ThreadPoolBuildError { kind: GlobalPoolAlreadyInitialized }