diff options
Diffstat (limited to 'crates/driver/src/main.rs')
-rw-r--r-- | crates/driver/src/main.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/driver/src/main.rs b/crates/driver/src/main.rs index 0e5c629..ea97ee5 100644 --- a/crates/driver/src/main.rs +++ b/crates/driver/src/main.rs @@ -9,6 +9,8 @@ mod resolve; mod task; mod template; +use std::collections::HashSet; + use clap::Parser; use runner::Runner; @@ -37,9 +39,10 @@ fn main() { .unwrap(); let mut rsv = resolve::Resolver::new(&ctx); + let mut force_run = HashSet::new(); for task in opts.tasks { - let task_ref = match ctx.parse(&task) { + let (task_ref, flags) = match ctx.parse(&task) { Ok(task_ref) => task_ref, Err(err) => { eprintln!("{}", err); @@ -53,9 +56,12 @@ fn main() { } std::process::exit(1); } + if flags.force_run { + force_run.insert(task_ref); + } } let taskset = rsv.into_taskset(); - let mut driver = driver::Driver::new(&ctx, taskset).unwrap(); + let mut driver = driver::Driver::new(&ctx, taskset, force_run).unwrap(); if let Err(error) = driver.run(&runner) { eprintln!("{}", error); std::process::exit(1); |