use anyhow::Result;
use clap::Parser;
use securegit::cli::args::rewrite_shorthand_args;
use securegit::cli::{execute_command, Cli, OutputConfig};
#[tokio::main]
async fn main() -> Result<()> {
let cli = Cli::parse_from(rewrite_shorthand_args(std::env::args()));
let output = OutputConfig::from(&cli);
let level = if output.verbose {
tracing::Level::DEBUG
} else if output.quiet {
tracing::Level::ERROR
} else {
tracing::Level::INFO
};
tracing_subscriber::fmt()
.with_env_filter(
tracing_subscriber::EnvFilter::from_default_env().add_directive(level.into()),
)
.init();
match execute_command(cli.command, output).await {
Ok(_) => {
std::process::exit(0);
}
Err(e) => {
let ui = securegit::cli::UI::new(false, false, false, false);
ui.error(format!("{:#}", e));
std::process::exit(1);
}
}
}