summaryrefslogtreecommitdiffstats
path: root/src/commands/build.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-12-07 13:23:35 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-12-07 13:26:16 +0100
commit83b3b97fee854e19c63999e4daadf802784a1499 (patch)
treeaadb169bde50d4497110a7f8989fde755d255c92 /src/commands/build.rs
parent5ff10cdad822300a04ffe3cb2482e20c37d7c2bd (diff)
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 <mail@beyermatthias.de>
Diffstat (limited to 'src/commands/build.rs')
-rw-r--r--src/commands/build.rs9
1 files changed, 8 insertions, 1 deletions
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<JobResource> = 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");