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