diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-11-16 14:25:16 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-11-16 14:25:16 +0100 |
commit | c75c7d6929cac98f38fdc05075af0ad3d7c28704 (patch) | |
tree | b590a0eedf16e5e2fe92f348a49653244c8fda68 /src/job/runnable.rs | |
parent | cf000f862b53847fa213375d7a14d20a3dd2630b (diff) |
Pass package environment and package variables (as environment variables) to container
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/job/runnable.rs')
-rw-r--r-- | src/job/runnable.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/job/runnable.rs b/src/job/runnable.rs index 6de5622..67219fb 100644 --- a/src/job/runnable.rs +++ b/src/job/runnable.rs @@ -84,6 +84,40 @@ impl RunnableJob { self.source_cache.source_for(&self.package()) } + pub fn environment(&self) -> Vec<(String, String)> { + let iter = self.resources + .iter() + .filter_map(JobResource::env) + .map(|(k, v)| (k.clone(), v.clone())); + + if let Some(hm) = self.package().environment() { + iter.chain({ + hm.iter().map(|(k, v)| (k.clone(), v.clone())) + }).collect() + } else { + iter.collect() + } + } + + pub fn package_environment(&self) -> Vec<(String, String)> { + vec![ + ( + String::from("BUTIDO_PACKAGE_NAME"), + self.package().name().clone().to_string() + ), + + ( + String::from("BUTIDO_PACKAGE_VERSION"), + self.package().version().clone().to_string() + ), + + ( + String::from("BUTIDO_PACKAGE_VERSION_IS_SEMVER"), + String::from(if *self.package().version_is_semver() { "true" } else { "false" }) + ), + ] + } + async fn build_resource(dep: &dyn ParseDependency, merged_stores: &MergedStores) -> Result<JobResource> { let (name, vers) = dep.parse_as_name_and_version()?; trace!("Copying dep: {:?} {:?}", name, vers); |