mago_cli/utils/mod.rs
1use std::error::Error;
2
3pub mod clap;
4
5pub fn print(error: impl Error) {
6 mago_feedback::error!(target = "mago", "{}", error);
7 mago_feedback::debug!(target = "mago", "{:#?}", error);
8
9 if let Some(source) = error.source() {
10 mago_feedback::debug!(target = "mago", "{:#?}", source);
11 }
12}
13
14pub fn bail<T>(error: impl Error) -> T {
15 print(error);
16
17 // we exit with a non-zero status code to indicate an error
18 // if this build is debug build, we will panic instead
19 if cfg!(debug_assertions) {
20 panic!("bail");
21 } else {
22 std::process::exit(1);
23 }
24}