use std::time::Instant; use binstalk::helpers::jobserver_client::LazyJobserverClient; use log::LevelFilter; use tracing::debug; use cargo_binstall::{ args, bin_util::{run_tokio_main, MainExit}, entry, logging::logging, }; #[cfg(feature = "mimalloc")] #[global_allocator] static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; fn main() -> MainExit { // This must be the very first thing to happen let jobserver_client = LazyJobserverClient::new(); let args = args::parse(); if args.version { println!("{}", env!("CARGO_PKG_VERSION")); MainExit::Success(None) } else { logging( args.log_level.unwrap_or(LevelFilter::Info), args.json_output, ); let start = Instant::now(); let result = run_tokio_main(|| entry::install_crates(args, jobserver_client)); let done = start.elapsed(); debug!("run time: {done:?}"); MainExit::new(result, done) } }