mod commands;
mod flags;
mod pipeline;
mod project;
mod run;
pub(crate) fn main(args: &[String]) {
let rest = args.get(2..).unwrap_or_default();
let word = args.get(1).map(String::as_str);
let result = match commands::find(word) {
Some(command) => (command.run)(rest),
None => Err(format!("unknown command: {}", word.unwrap_or_default())),
};
if let Err(e) = result {
if yog_cli::diagnostics::errors_reported() == 0 {
yog_cli::diagnostics::failed(yog_ids::build_problem::FAILED, &e);
}
eprintln!("yog: error: {e}");
std::process::exit(1);
}
}