summaryrefslogtreecommitdiffstats
path: root/crates
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2024-04-04 21:07:32 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2024-04-06 00:24:45 +0200
commit631b45f565bf6160734941e0b7ad69e68a520b0e (patch)
tree6f23351beafffb585f7f0c71f72c068e8be2f464 /crates
parentdd1dae3d269b9bcae9c0a8b818eca780bc3f86f9 (diff)
downloadrebel-631b45f565bf6160734941e0b7ad69e68a520b0e.tar
rebel-631b45f565bf6160734941e0b7ad69e68a520b0e.zip
driver: add overrideable recipe name variable
{{name}} defaults to {{basename}}, but can be overridden in the meta section.
Diffstat (limited to 'crates')
-rw-r--r--crates/driver/src/context.rs1
-rw-r--r--crates/driver/src/recipe.rs11
-rw-r--r--crates/driver/src/task.rs2
3 files changed, 14 insertions, 0 deletions
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<RecipeMeta> {
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<String>,
pub version: Option<String>,
}
@@ -72,6 +73,7 @@ pub struct TaskMeta {
pub basename: String,
pub recipename: String,
pub recipe: String,
+ pub name: String,
pub version: Option<String>,
}