mod cli;
mod commands;
mod ops;
mod progress;
mod util;
use clap::Parser;
use cli::Cli;
use color_eyre::eyre::Result;
#[tokio::main]
async fn main() -> Result<()> {
color_eyre::install()?;
human_panic::setup_panic!();
let cli = Cli::parse();
if let Err(err) = commands::dispatch(cli).await {
eprintln!("Error: {err}");
for cause in err.chain().skip(1) {
eprintln!(" caused by: {cause}");
}
std::process::exit(1);
}
Ok(())
}