From 83b3b97fee854e19c63999e4daadf802784a1499 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Mon, 7 Dec 2020 13:23:35 +0100 Subject: Implement shebang overwriting This patch implements the shebang overwriting functionality that was in a TODO note. It adds a `Shebang` type for it, which is a String wrapper. Signed-off-by: Matthias Beyer --- src/commands/build.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/commands/build.rs') diff --git a/src/commands/build.rs b/src/commands/build.rs index 33a04f8..3813f95 100644 --- a/src/commands/build.rs +++ b/src/commands/build.rs @@ -21,6 +21,7 @@ use crate::job::JobSet; use crate::orchestrator::OrchestratorSetup; use crate::package::PackageName; use crate::package::PackageVersion; +use crate::package::Shebang; use crate::package::Tree; use crate::repository::Repository; use crate::source::SourceCache; @@ -48,6 +49,12 @@ pub async fn build(matches: &ArgMatches, let submit_id = uuid::Uuid::new_v4(); info!("Submit {}, started {}", submit_id, now); + let shebang = Shebang::from({ + matches.value_of("shebang") + .map(String::from) + .unwrap_or_else(|| config.shebang().clone()) + }); + let image_name = matches.value_of("image").map(String::from).map(ImageName::from).unwrap(); // safe by clap if config.docker().verify_images_present() { if !config.docker().images().iter().any(|img| image_name == *img) { @@ -215,7 +222,7 @@ pub async fn build(matches: &ArgMatches, trace!("Setting up job sets"); let resources: Vec = additional_env.into_iter().map(JobResource::from).collect(); - let jobsets = JobSet::sets_from_tree(tree, image_name, phases.clone(), resources)?; + let jobsets = JobSet::sets_from_tree(tree, shebang, image_name, phases.clone(), resources)?; trace!("Setting up job sets finished successfully"); trace!("Setting up Orchestrator"); -- cgit v1.2.3