diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs index 527c2f2..2158e50 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,7 +10,18 @@ use std::path::Path; use types::*; +use clap::Clap; + +#[derive(Clap)] +#[clap(version = clap::crate_version!())] +struct Opts { + #[clap(name = "task", required = true)] + tasks: Vec<String>, +} + fn main() { + let opts: Opts = Opts::parse(); + let runner = unsafe { runner::runc::RuncRunner::new() }.unwrap(); let recipes = recipe::read_recipes(Path::new("examples")).unwrap(); @@ -25,12 +36,14 @@ fn main() { let mut rsv = resolve::Resolver::new(&tasks); - let errors = rsv.add_goal(&"ls:build".to_string()); - if !errors.is_empty() { - for error in errors { - eprintln!("{}", error); + for task in opts.tasks { + let errors = rsv.add_goal(&task); + if !errors.is_empty() { + for error in errors { + eprintln!("{}", error); + } + std::process::exit(1); } - std::process::exit(1); } let taskset = rsv.to_taskset(); let mut exc = executor::Executor::new(&tasks, taskset).unwrap(); |