diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-12-07 13:23:35 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-12-07 13:26:16 +0100 |
commit | 83b3b97fee854e19c63999e4daadf802784a1499 (patch) | |
tree | aadb169bde50d4497110a7f8989fde755d255c92 /src/commands/build.rs | |
parent | 5ff10cdad822300a04ffe3cb2482e20c37d7c2bd (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.rs | 9 |
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"); |