use std::process::ExitCode;
use clap::Parser;
use dsp_cli::cli::Cli;
use dsp_cli::diagnostic::ExitCategory;
fn main() -> ExitCode {
dotenvy::dotenv().ok();
let cli = Cli::parse();
dsp_cli::diagnostic::init_tracing(cli.verbose);
let notice_fmt = cli.output_format();
let result = dsp_cli::run(cli);
let code = match &result {
Ok(()) => ExitCategory::Success as u8,
Err(diag) => {
eprintln!("Error: {diag}");
diag.exit_category() as u8
}
};
dsp_cli::update::maybe_notify(notice_fmt);
ExitCode::from(code)
}