summaryrefslogtreecommitdiffstats
path: root/src/job/runnable.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-12-08 14:16:38 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-12-08 14:16:38 +0100
commit25ffcbbd37a983d2031a6aa172730d6957b0a6a6 (patch)
tree8bb8af7cd5b1f0bad46d1ce7d57ae920371ed0ac /src/job/runnable.rs
parente66929d6d5928ca882b1060fcd8e42cae89da1dd (diff)
Move aggregation of environment variables to helper function
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/job/runnable.rs')
-rw-r--r--src/job/runnable.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/job/runnable.rs b/src/job/runnable.rs
index a0acaff..6d36189 100644
--- a/src/job/runnable.rs
+++ b/src/job/runnable.rs
@@ -1,3 +1,5 @@
+use std::collections::HashMap;
+
use anyhow::Context;
use anyhow::Error;
use anyhow::Result;
@@ -88,12 +90,20 @@ impl RunnableJob {
}
pub fn environment(&self) -> Vec<(EnvironmentVariableName, String)> {
- let iter = self.resources
+ Self::env_resources(&self.resources, self.package().environment().as_ref())
+ }
+
+ /// Helper function to collect a list of resources and the result of package.environment() into
+ /// a Vec of environment variables
+ fn env_resources(resources: &Vec<JobResource>, pkgenv: Option<&HashMap<EnvironmentVariableName, String>>)
+ -> Vec<(EnvironmentVariableName, String)>
+ {
+ let iter = resources
.iter()
.filter_map(JobResource::env)
.map(|(k, v)| (k.clone(), v.clone()));
- if let Some(hm) = self.package().environment() {
+ if let Some(hm) = pkgenv {
iter.chain({
hm.iter().map(|(k, v)| (k.clone(), v.clone()))
}).collect()