use anyhow::Result;
use clap::Parser;
use std::{env, io::Write};
#[cfg(windows)]
mod binding;
mod cli;
mod config;
mod dependency;
mod project;
mod subprocess;
use crate::{cli::Cli, config::Config, project::Project};
fn main() -> Result<()> {
env_logger::builder()
.format(|buf, record| writeln!(buf, "[{} cargo-temp] {}", record.level(), record.args()))
.filter(Some("cargo_temp"), log::LevelFilter::Info)
.init();
let mut args = env::args().peekable();
let command = args.next();
args.next_if(|x| x.as_str() == "temp");
let cli = Cli::parse_from(command.into_iter().chain(args));
let config = Config::get_or_create()?;
Project::execute(cli, config)
}