Print errors when steps fail (#171)
This commit is contained in:
committed by
Thomas Schönauer
parent
2cbb7db66d
commit
022afab1ca
@@ -2,6 +2,7 @@ use crate::ctrlc;
|
|||||||
use crate::error::{DryRun, SkipStep};
|
use crate::error::{DryRun, SkipStep};
|
||||||
use crate::execution_context::ExecutionContext;
|
use crate::execution_context::ExecutionContext;
|
||||||
use crate::report::{Report, StepResult};
|
use crate::report::{Report, StepResult};
|
||||||
|
use crate::terminal::print_error;
|
||||||
use crate::{config::Step, terminal::should_retry};
|
use crate::{config::Step, terminal::should_retry};
|
||||||
use color_eyre::eyre::Result;
|
use color_eyre::eyre::Result;
|
||||||
use log::debug;
|
use log::debug;
|
||||||
@@ -55,7 +56,12 @@ impl<'a> Runner<'a> {
|
|||||||
|
|
||||||
let ignore_failure = self.ctx.config().ignore_failure(step);
|
let ignore_failure = self.ctx.config().ignore_failure(step);
|
||||||
let should_ask = interrupted || !(self.ctx.config().no_retry() || ignore_failure);
|
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 {
|
if !should_retry {
|
||||||
self.report.push_result(Some((
|
self.report.push_result(Some((
|
||||||
|
|||||||
@@ -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)]
|
#[allow(dead_code)]
|
||||||
fn print_warning<P: AsRef<str>>(&mut self, message: P) {
|
fn print_warning<P: AsRef<str>>(&mut self, message: P) {
|
||||||
let message = message.as_ref();
|
let message = message.as_ref();
|
||||||
@@ -278,6 +291,11 @@ pub fn print_separator<P: AsRef<str>>(message: P) {
|
|||||||
TERMINAL.lock().unwrap().print_separator(message)
|
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)]
|
#[allow(dead_code)]
|
||||||
pub fn print_warning<P: AsRef<str>>(message: P) {
|
pub fn print_warning<P: AsRef<str>>(message: P) {
|
||||||
TERMINAL.lock().unwrap().print_warning(message)
|
TERMINAL.lock().unwrap().print_warning(message)
|
||||||
|
|||||||
Reference in New Issue
Block a user