From 92cf7b6f83c148845dae0ed7dcc8c4cb631686aa Mon Sep 17 00:00:00 2001 From: ascendforever Date: Sun, 13 Oct 2024 12:03:52 -0400 Subject: [PATCH] stdout not used or locked unless verbosity >= 0 --- src/main.rs | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index cd9d4c8..47638d4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -215,19 +215,28 @@ fn run(paths: Vec, cfg: &Config) -> Result<(), Box= 2); - let stdout = std::io::stdout(); - let mut stdout_buffer = std::io::BufWriter::new(stdout.lock()); + let mut stdout_buffer = if cfg.verbosity >= 0 { + let stdout = std::io::stdout(); + let stdout_buffer = std::io::BufWriter::new(stdout.lock()); + Some(stdout_buffer) + } else { + None + }; - if cfg.verbosity > 0 { - writeln!(stdout_buffer, "Considering {} total files for duplicates", registry.iter().map(|(_,files)| files.len()).sum::()).unwrap(); + if let Some(stdout_buffer) = &mut stdout_buffer { + if cfg.verbosity >= 0 { + writeln!(stdout_buffer, "Considering {} total files for duplicates", registry.iter().map(|(_,files)| files.len()).sum::()).unwrap(); + } } for (fsize, mut files) in registry { if files.len() > 8 { files.sort_by_key(|path| path.file_name().unwrap_or_default().to_string_lossy().to_string()); } - if cfg.verbosity > 1 { - writeln!(stdout_buffer, "Considering {} files of size {} for duplicates", files.len(), fsize).unwrap(); + if let Some(stdout_buffer) = &mut stdout_buffer { + if cfg.verbosity > 1 { + writeln!(stdout_buffer, "Considering {} files of size {} for duplicates", files.len(), fsize).unwrap(); + } } for i in (0..files.len()).rev() { let f1 = &files[i]; @@ -240,8 +249,10 @@ fn run(paths: Vec, cfg: &Config) -> Result<(), Box= 0 { - writeln!(stdout_buffer, "hardlinked {}", format_pair(f1, f2, cfg)).unwrap(); + if let Some(stdout_buffer) = &mut stdout_buffer { + if cfg.verbosity >= 0 { + writeln!(stdout_buffer, "hardlinked {}", format_pair(f1, f2, cfg)).unwrap(); + } } } }