diff options
-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) } } |