taskcmd 0.1.1

Task commander
Documentation
pub mod command;
pub mod errors;
pub mod loader;
pub mod tasks;

use crate::errors::*;
use crate::loader::load_definitions;
use crate::tasks::Tasks;
use antex::ColorMode;

pub fn run() -> Result<()> {
  let definitions = load_definitions()?;
  let tasks = Tasks::new(definitions)?;
  let args = std::env::args().skip(1).collect::<Vec<String>>();
  if args.len() == 1 {
    let task_name = &args[0];
    let exit_status = tasks.execute(task_name)?;
    std::process::exit(exit_status.code().unwrap());
  } else {
    tasks.list(ColorMode::default());
  }
  Ok(())
}