diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-12-03 08:42:32 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-12-03 08:42:32 +0100 |
commit | 788c81a44561942841a261337366e4a6e1059386 (patch) | |
tree | 5aa860105e99d9d05709fdf7c5336cf9b0265f19 /src/package/script.rs | |
parent | e0a589663125964fdcabe1b7a401a02850b64b9d (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.rs | 10 |
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) } } |