securegit 0.8.5

Zero-trust git replacement with 12 built-in security scanners, LLM redteam bridge, universal undo, durable backups, and a 50-tool MCP server
Documentation
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);

    // Set tracing level based on flags
    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);
        }
    }
}