diff options
Diffstat (limited to 'crates/driver/src/main.rs')
-rw-r--r-- | crates/driver/src/main.rs | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/crates/driver/src/main.rs b/crates/driver/src/main.rs deleted file mode 100644 index ea97ee5..0000000 --- a/crates/driver/src/main.rs +++ /dev/null @@ -1,69 +0,0 @@ -mod args; -mod context; -mod driver; -mod parse; -mod paths; -mod pin; -mod recipe; -mod resolve; -mod task; -mod template; - -use std::collections::HashSet; - -use clap::Parser; - -use runner::Runner; - -#[derive(Parser)] -#[clap(version = clap::crate_version!())] -struct Opts { - /// Allow N jobs at once. - /// Defaults to the number of available CPUs - #[clap(short, long)] - jobs: Option<usize>, - /// The tasks to run - #[clap(name = "task", required = true)] - tasks: Vec<String>, -} - -fn main() { - let opts: Opts = Opts::parse(); - - let runner = unsafe { Runner::new(&runner::Options { jobs: opts.jobs }) }.unwrap(); - - let ctx = context::Context::new( - recipe::read_recipes("examples/recipes").unwrap(), - pin::read_pins("examples/pins.yml").unwrap(), - ) - .unwrap(); - - let mut rsv = resolve::Resolver::new(&ctx); - let mut force_run = HashSet::new(); - - for task in opts.tasks { - let (task_ref, flags) = match ctx.parse(&task) { - Ok(task_ref) => task_ref, - Err(err) => { - eprintln!("{}", err); - std::process::exit(1); - } - }; - let errors = rsv.add_goal(&task_ref); - if !errors.is_empty() { - for error in errors { - eprintln!("{}", error); - } - 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, force_run).unwrap(); - if let Err(error) = driver.run(&runner) { - eprintln!("{}", error); - std::process::exit(1); - } -} |