blob: dd852790af22239a4d21d2f49081c9f693e09964 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
use clap::Parser;
use mozart::commands;
use mozart::exit_code;
fn main() {
let cli = commands::Cli::parse();
match commands::execute(&cli) {
Ok(()) => {}
Err(e) => {
// Check if this is a structured MozartError with a specific exit code.
if let Some(mozart_err) = e.downcast_ref::<exit_code::MozartError>() {
// Only print a message when there is one (bail_silent produces empty message).
if !mozart_err.message.is_empty() {
eprintln!("{}", mozart::console::error(&mozart_err.message));
}
std::process::exit(mozart_err.exit_code);
}
// Generic anyhow error — print and exit with GENERAL_ERROR.
eprintln!("{}", mozart::console::error(&format!("{e:#}")));
std::process::exit(exit_code::GENERAL_ERROR);
}
}
}
|