use clap::Parser;
use nedots::{ExecuteWith, RootCmd};
use std::process::ExitCode;
fn init() -> RootCmd {
let root_cmd = RootCmd::parse();
let mut verbosity = root_cmd.verbose.log_level_filter();
if root_cmd
.verbose
.log_level_filter()
.le(&log::LevelFilter::Error)
&& !root_cmd.verbose.is_silent()
{
verbosity = log::LevelFilter::Info;
}
if cfg!(debug_assertions) {
env_logger::Builder::new().filter_level(verbosity).init();
} else {
env_logger::Builder::new()
.format_timestamp(None)
.format_target(false)
.filter_level(verbosity)
.init();
}
log::debug!("{:#?}", root_cmd);
root_cmd
}
fn run(root_cmd: RootCmd) -> ExitCode {
match root_cmd.exec_with(&root_cmd) {
Ok(_) => ExitCode::SUCCESS,
Err(err) => {
log::error!("❌ {}", err);
ExitCode::FAILURE
}
}
}
fn main() -> ExitCode {
run(init())
}