context7-cli 0.5.0

Search library documentation from your terminal — zero runtime, bilingual (EN/PT), multi-key rotation
Documentation
#[cfg(target_env = "musl")]
#[global_allocator]
static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc;

#[tokio::main(flavor = "multi_thread", worker_threads = 4)]
async fn main() {
    context7_cli::platform::inicializar_plataforma();

    let _guarda_log = match context7_cli::inicializar_logging() {
        Ok(guard) => guard,
        Err(e) => {
            eprintln!("Falha ao inicializar logging: {e}");
            std::process::exit(74); // EX_IOERR
        }
    };

    if let Err(e) = context7_cli::run().await {
        // Extract BSD-style exit code from ErroContext7 if available
        let codigo = e
            .downcast_ref::<context7_cli::errors::ErroContext7>()
            .map(|ec| ec.exit_code())
            .unwrap_or(1);

        // OperacaoKeysFalhou already printed a user-friendly message; skip empty msgs
        let msg = e.to_string();
        if !msg.is_empty() {
            eprintln!("Error: {e:#}");
        }
        std::process::exit(codigo);
    }
}