use cargo_hakari::Args;
use cfg_if::cfg_if;
use clap::Parser;
use color_eyre::eyre::Result;
fn executable_name(subcommand: &str) -> String {
cfg_if! {
if #[cfg(target_os = "windows")] {
format!("cargo-{}.exe", subcommand)
} else {
format!("cargo-{subcommand}")
}
}
}
fn args() -> impl Iterator<Item = String> {
let mut args: Vec<String> = ::std::env::args().collect();
if args.len() >= 2 && args[0].ends_with(&executable_name(&args[1])) {
args.remove(1);
}
args.into_iter()
}
fn main() -> Result<()> {
color_eyre::install()?;
let _ = enable_ansi_support::enable_ansi_support();
let args = Args::parse_from(args());
std::process::exit(args.exec()?)
}