From 4fdefdb090873614b7720a09ba347f413c518ff9 Mon Sep 17 00:00:00 2001 From: Simon Ask Ulsnes Date: Sun, 27 Apr 2025 08:09:28 +0200 Subject: [PATCH] Don't ignore `default jobs = N` in Werkfile --- werk-cli/main.rs | 6 +++--- werk-runner/ir.rs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/werk-cli/main.rs b/werk-cli/main.rs index df1843c0..8edc86f5 100644 --- a/werk-cli/main.rs +++ b/werk-cli/main.rs @@ -674,7 +674,7 @@ pub fn get_workspace_dir<'a>( } pub fn get_workspace_settings( - config: &werk_runner::ir::Defaults, + defaults: &werk_runner::ir::Defaults, args: &Args, workspace_dir: &Absolute, color_stdout: ColorOutputKind, @@ -682,11 +682,11 @@ pub fn get_workspace_settings( let out_dir = find_output_directory( workspace_dir, args.output_dir.as_deref(), - config.output_directory.as_deref(), + defaults.output_directory.as_deref(), )?; let mut settings = WorkspaceSettings::new(workspace_dir.to_owned()); - settings.jobs = args.jobs.unwrap_or_else(num_cpus::get); + settings.jobs = args.jobs.or(defaults.jobs).unwrap_or_else(num_cpus::get); settings.output_directory = out_dir; for def in &args.define { let Some((key, value)) = def.split_once('=') else { diff --git a/werk-runner/ir.rs b/werk-runner/ir.rs index ceb469ab..1950efb6 100644 --- a/werk-runner/ir.rs +++ b/werk-runner/ir.rs @@ -190,7 +190,7 @@ pub struct Defaults { pub explain: Option, pub verbose: Option, pub watch_delay: Option, - pub jobs: Option, + pub jobs: Option, pub edition: Edition, } @@ -216,7 +216,7 @@ impl Defaults { ast::DefaultStmt::Explain(entry) => defaults.explain = Some(entry.value.1), ast::DefaultStmt::Verbose(entry) => defaults.verbose = Some(entry.value.1), ast::DefaultStmt::WatchDelay(entry) => defaults.watch_delay = Some(entry.value.1), - ast::DefaultStmt::Jobs(entry) => defaults.jobs = Some(entry.value.1), + ast::DefaultStmt::Jobs(entry) => defaults.jobs = entry.value.1.try_into().ok(), ast::DefaultStmt::Edition(entry) => { if entry.value.1 == "v1" { defaults.edition = Edition::V1;