From 631b45f565bf6160734941e0b7ad69e68a520b0e Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 4 Apr 2024 21:07:32 +0200 Subject: driver: add overrideable recipe name variable {{name}} defaults to {{basename}}, but can be overridden in the meta section. --- crates/driver/src/context.rs | 1 + crates/driver/src/recipe.rs | 11 +++++++++++ crates/driver/src/task.rs | 2 ++ 3 files changed, 14 insertions(+) (limited to 'crates') diff --git a/crates/driver/src/context.rs b/crates/driver/src/context.rs index b4bdc44..e6e60b1 100644 --- a/crates/driver/src/context.rs +++ b/crates/driver/src/context.rs @@ -348,6 +348,7 @@ impl Context { new_args.set("basename", Some(task_def.meta.basename.clone())); new_args.set("recipename", Some(task_def.meta.recipename.clone())); new_args.set("recipe", Some(task_def.meta.recipe.clone())); + new_args.set("name", Some(task_def.meta.name.clone())); new_args.set("version", task_def.meta.version.clone()); Ok(TaskRef { diff --git a/crates/driver/src/recipe.rs b/crates/driver/src/recipe.rs index f6207f7..3d3f847 100644 --- a/crates/driver/src/recipe.rs +++ b/crates/driver/src/recipe.rs @@ -84,10 +84,18 @@ fn read_recipe_tasks( ) -> Result { let recipe_def = CURRENT_RECIPE.set(basename, || read_recipe(path))?; + let name = recipe_def + .meta + .name + .as_deref() + .unwrap_or(basename) + .to_string(); + let meta = TaskMeta { basename: basename.to_string(), recipename: "".to_string(), recipe: basename.to_string(), + name, version: recipe_def.meta.version.clone(), }; @@ -106,10 +114,13 @@ fn read_subrecipe_tasks( let recipe = format!("{basename}/{recipename}"); let recipe_def = CURRENT_RECIPE.set(&recipe, || read_recipe(path))?; + let name = recipe_meta.name.as_deref().unwrap_or(basename).to_string(); + let meta = TaskMeta { basename: basename.to_string(), recipename: recipename.to_string(), recipe: recipe.clone(), + name, version: recipe_meta.version.clone(), }; diff --git a/crates/driver/src/task.rs b/crates/driver/src/task.rs index 3e909de..1047d1e 100644 --- a/crates/driver/src/task.rs +++ b/crates/driver/src/task.rs @@ -11,6 +11,7 @@ use crate::{ #[derive(Clone, Debug, Deserialize, Default)] pub struct RecipeMeta { + pub name: Option, pub version: Option, } @@ -72,6 +73,7 @@ pub struct TaskMeta { pub basename: String, pub recipename: String, pub recipe: String, + pub name: String, pub version: Option, } -- cgit v1.2.3