summaryrefslogtreecommitdiffstats
path: root/src/package/script.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-12-03 08:42:32 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-12-03 08:42:32 +0100
commit788c81a44561942841a261337366e4a6e1059386 (patch)
tree5aa860105e99d9d05709fdf7c5336cf9b0265f19 /src/package/script.rs
parente0a589663125964fdcabe1b7a401a02850b64b9d (diff)
Add ability to use variables from the package in its build script using handlebars syntax
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/package/script.rs')
-rw-r--r--src/package/script.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/package/script.rs b/src/package/script.rs
index c8cde19..657af1f 100644
--- a/src/package/script.rs
+++ b/src/package/script.rs
@@ -1,4 +1,6 @@
+use anyhow::Error;
use anyhow::Result;
+use handlebars::Handlebars;
use serde::Deserialize;
use serde::Serialize;
@@ -69,6 +71,12 @@ impl<'a> ScriptBuilder<'a> {
}
}
- Ok(Script(script))
+ Self::interpolate_package(script, package).map(Script)
+ }
+
+ fn interpolate_package(script: String, package: &Package) -> Result<String> {
+ let mut hb = Handlebars::new();
+ hb.register_template_string("script", script)?;
+ hb.render("releases", package).map_err(Error::from)
}
}