From b83bae000685a84842c498a59f7b1bf3927577a8 Mon Sep 17 00:00:00 2001 From: Vivien MALEZE Date: Fri, 6 Mar 2026 16:35:56 +0100 Subject: [PATCH] fix(task): replace println!/eprintln! with calm_io in task output macros Fixes broken pipe panics in task output path triggered when stdout/stderr is closed early (e.g. pipe or shell substitution finishing before mise). --- src/output.rs | 4 ++-- src/task/task_results_display.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/output.rs b/src/output.rs index 997bcc6b6d..2907502796 100644 --- a/src/output.rs +++ b/src/output.rs @@ -6,14 +6,14 @@ use std::sync::Mutex; macro_rules! prefix_println { ($prefix:expr, $($arg:tt)*) => {{ let msg = format!($($arg)*); - println!("{} {}", $prefix, msg); + let _ = calm_io::stdoutln!("{} {}", $prefix, msg); }}; } #[macro_export] macro_rules! prefix_eprintln { ($prefix:expr, $($arg:tt)*) => {{ let msg = format!($($arg)*); - eprintln!("{} {}", $prefix, msg); + let _ = calm_io::stderrln!("{} {}", $prefix, msg); }}; } diff --git a/src/task/task_results_display.rs b/src/task/task_results_display.rs index abb0153bad..414e527c53 100644 --- a/src/task/task_results_display.rs +++ b/src/task/task_results_display.rs @@ -51,7 +51,7 @@ impl TaskResultsDisplay { fn display_timing_summary(&self, num_tasks: usize, timer: std::time::Instant) { if self.show_timings && num_tasks > 1 { let msg = format!("Finished in {}", time::format_duration(timer.elapsed())); - eprintln!("{}", style::edim(msg)); + let _ = calm_io::stderrln!("{}", style::edim(msg)); } } @@ -67,7 +67,7 @@ impl TaskResultsDisplay { } let count = failed.len(); - eprintln!("{} {} task(s) failed:", style::ered("ERROR"), count); + let _ = calm_io::stderrln!("{} {} task(s) failed:", style::ered("ERROR"), count); for (task, status) in &failed { let prefix = task.estyled_prefix(); let status_str = status