diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-12-08 14:16:38 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-12-08 14:16:38 +0100 |
commit | 25ffcbbd37a983d2031a6aa172730d6957b0a6a6 (patch) | |
tree | 8bb8af7cd5b1f0bad46d1ce7d57ae920371ed0ac /src/job/runnable.rs | |
parent | e66929d6d5928ca882b1060fcd8e42cae89da1dd (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.rs | 14 |
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() |