1#![allow(clippy::doc_markdown)]
2#![doc = include_str!("../docs/lib.rs.md")]
3
4pub mod command;
5pub mod errors;
6pub mod loader;
7pub mod tasks;
8
9use crate::errors::Result;
10use crate::loader::load_definitions;
11use crate::tasks::Tasks;
12use antex::ColorMode;
13
14pub fn run() -> Result<()> {
20 let definitions = load_definitions()?;
21 let tasks = Tasks::new(&definitions)?;
22 let args = std::env::args().skip(1).collect::<Vec<String>>();
23 if args.len() == 1 {
24 let task_name = &args[0];
25 let exit_status = tasks.execute(task_name)?;
26 std::process::exit(exit_status.code().unwrap_or(1));
27 }
28 tasks.list(ColorMode::default());
29 Ok(())
30}