use clap::Parser;
use kata::cli::Cli;
#[tokio::main]
async fn main() -> std::process::ExitCode {
init_tracing();
let cli = Cli::parse();
match cli.run().await {
Ok(()) => std::process::ExitCode::SUCCESS,
Err(e) => {
eprintln!("error: {e}");
let mut src = std::error::Error::source(&e);
while let Some(s) = src {
eprintln!(" caused by: {s}");
src = s.source();
}
std::process::ExitCode::FAILURE
}
}
}
fn init_tracing() {
use tracing_subscriber::{EnvFilter, fmt};
let filter =
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("warn,kata=info"));
fmt()
.with_env_filter(filter)
.with_writer(std::io::stderr)
.with_target(false)
.init();
}