summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)
}
}