From 022afab1ca581b5dcbd54c5f4322fbbf6f7fd35c Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Fri, 11 Nov 2022 09:42:16 -0500 Subject: [PATCH] Print errors when steps fail (#171) --- src/runner.rs | 8 +++++++- src/terminal.rs | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/runner.rs b/src/runner.rs index 2c29f17e..91e31ce6 100644 --- a/src/runner.rs +++ b/src/runner.rs @@ -2,6 +2,7 @@ use crate::ctrlc; use crate::error::{DryRun, SkipStep}; use crate::execution_context::ExecutionContext; use crate::report::{Report, StepResult}; +use crate::terminal::print_error; use crate::{config::Step, terminal::should_retry}; use color_eyre::eyre::Result; use log::debug; @@ -55,7 +56,12 @@ impl<'a> Runner<'a> { let ignore_failure = self.ctx.config().ignore_failure(step); let should_ask = interrupted || !(self.ctx.config().no_retry() || ignore_failure); - let should_retry = should_ask && should_retry(interrupted, key.as_ref())?; + let should_retry = if should_ask { + print_error(&key, format!("{e:?}")); + should_retry(interrupted, key.as_ref())? + } else { + false + }; if !should_retry { self.report.push_result(Some(( diff --git a/src/terminal.rs b/src/terminal.rs index 3ff525bf..5424da27 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -163,6 +163,19 @@ impl Terminal { } } + #[allow(dead_code)] + fn print_error, Q: AsRef>(&mut self, key: Q, message: P) { + let key = key.as_ref(); + let message = message.as_ref(); + self.term + .write_fmt(format_args!( + "{} {}", + style(format!("{} failed:", key)).red().bold(), + message + )) + .ok(); + } + #[allow(dead_code)] fn print_warning>(&mut self, message: P) { let message = message.as_ref(); @@ -278,6 +291,11 @@ pub fn print_separator>(message: P) { TERMINAL.lock().unwrap().print_separator(message) } +#[allow(dead_code)] +pub fn print_error, Q: AsRef>(key: Q, message: P) { + TERMINAL.lock().unwrap().print_error(key, message) +} + #[allow(dead_code)] pub fn print_warning>(message: P) { TERMINAL.lock().unwrap().print_warning(message)