Print errors when steps fail (#171)

This commit is contained in:
Rebecca Turner
2022-11-11 09:42:16 -05:00
committed by Thomas Schönauer
parent 2cbb7db66d
commit 022afab1ca
2 changed files with 25 additions and 1 deletions

View File

@@ -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((

View File

@@ -163,6 +163,19 @@ impl Terminal {
}
}
#[allow(dead_code)]
fn print_error<P: AsRef<str>, Q: AsRef<str>>(&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<P: AsRef<str>>(&mut self, message: P) {
let message = message.as_ref();
@@ -278,6 +291,11 @@ pub fn print_separator<P: AsRef<str>>(message: P) {
TERMINAL.lock().unwrap().print_separator(message)
}
#[allow(dead_code)]
pub fn print_error<P: AsRef<str>, Q: AsRef<str>>(key: Q, message: P) {
TERMINAL.lock().unwrap().print_error(key, message)
}
#[allow(dead_code)]
pub fn print_warning<P: AsRef<str>>(message: P) {
TERMINAL.lock().unwrap().print_warning(message)