diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-07-17 21:38:37 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2021-07-17 21:38:37 +0200 |
commit | ea2049a5d452cf27f15b8a207fca14ab4ad4ebc9 (patch) | |
tree | 0c38692247675208dfc798dd9554f016f9efbff9 /src/main.rs | |
parent | ac869b81bc84f18a0a5428c059e3779e27020755 (diff) | |
download | rebel-ea2049a5d452cf27f15b8a207fca14ab4ad4ebc9.tar rebel-ea2049a5d452cf27f15b8a207fca14ab4ad4ebc9.zip |
main: pass goals on commandline
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(); |