1use crate::context::hcl_context;
2use hcl::eval::Evaluate;
3use hcl::template::Template;
4use std::str::FromStr;
5
6pub fn parse_template(template: &str) -> Result<String, String> {
12 let template = Template::from_str(template).map_err(|e| e.to_string())?;
13 let ctx = hcl_context();
14 let value = template.evaluate(&ctx).map_err(|e| e.to_string())?;
15 Ok(value)
16}
17
18#[allow(clippy::missing_panics_doc)]
19#[cfg(test)]
20mod tests {
21 #[test]
22 fn test_templ() {
23 let template = "hello ${env.USER}";
24 let result = crate::template::parse_template(template).unwrap();
25 println!("{result}");
26 let username = std::env::var("USER").unwrap();
28 assert_eq!(result, format!("hello {username}"));
29 }
30}