From 683f0a65fd351bc761e9114bd4bddf11ff9094ec Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 28 Oct 2021 01:01:46 +0200 Subject: executor: use lazy_static for template engine --- crates/executor/src/executor.rs | 15 +++++++-------- crates/executor/src/template.rs | 5 +++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/crates/executor/src/executor.rs b/crates/executor/src/executor.rs index ad560e9..e29b5b3 100644 --- a/crates/executor/src/executor.rs +++ b/crates/executor/src/executor.rs @@ -13,7 +13,7 @@ use crate::{ context::{Context, TaskRef}, resolve, task::*, - template::TemplateEngine, + template, }; pub struct Executor<'ctx> { @@ -23,7 +23,6 @@ pub struct Executor<'ctx> { tasks_running: HashMap)>, tasks_done: HashMap, TaskOutput>, rdeps: HashMap, Vec>>, - tpl: TemplateEngine, } impl<'ctx> Executor<'ctx> { @@ -35,7 +34,6 @@ impl<'ctx> Executor<'ctx> { tasks_running: HashMap::new(), tasks_done: HashMap::new(), rdeps: HashMap::new(), - tpl: TemplateEngine::new(), }; for task in taskset { @@ -74,9 +72,11 @@ impl<'ctx> Executor<'ctx> { .iter() .map(|Fetch { name, sha256 }| { Ok(Dependency::Fetch { - name: self.tpl.eval_raw(name, &task.args).with_context(|| { - format!("Failed to evaluate fetch filename for task {}", task) - })?, + name: template::ENGINE + .eval_raw(name, &task.args) + .with_context(|| { + format!("Failed to evaluate fetch filename for task {}", task) + })?, sha256: *sha256, }) }) @@ -225,8 +225,7 @@ impl<'ctx> Executor<'ctx> { let mut run = self.task_setup(task_ref); run.push(&task_def.action.run); - let command = self - .tpl + let command = template::ENGINE .eval(&run.concat(), &task_ref.args) .with_context(|| { format!("Failed to evaluate command template for task {}", task_ref) diff --git a/crates/executor/src/template.rs b/crates/executor/src/template.rs index 0caa30d..b663e7d 100644 --- a/crates/executor/src/template.rs +++ b/crates/executor/src/template.rs @@ -1,4 +1,5 @@ use handlebars::Handlebars; +use lazy_static::lazy_static; use common::error::*; @@ -37,3 +38,7 @@ impl TemplateEngine { self.tpl.render_template(input, args).map_err(Error::new) } } + +lazy_static! { + pub static ref ENGINE: TemplateEngine = TemplateEngine::new(); +} -- cgit v1.2.3