Skip to content

Commit a233e28

Browse files
committed
gather requirements correctly
1 parent 4ba25bd commit a233e28

1 file changed

Lines changed: 10 additions & 18 deletions

File tree

crates/cwl-execution/src/environment.rs

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::{get_available_disk_space, get_available_ram, get_processor_count, util::evaluate_input, validate::set_placeholder_values_in_string};
22
use cwl::{
33
inputs::CommandInputParameter,
4-
requirements::{check_timelimit, NetworkAccess, Requirement, ResourceRequirement},
4+
requirements::{check_timelimit, EnvVarRequirement, NetworkAccess, ResourceRequirement},
55
types::{DefaultValue, EnviromentDefs},
66
CWLDocument, StringOrNumber,
77
};
@@ -122,22 +122,14 @@ fn evaluate(val: &StringOrNumber, runtime: &RuntimeEnvironment, inputs: &[Comman
122122
}
123123

124124
pub(crate) fn collect_environment(tool: &CWLDocument) -> HashMap<String, String> {
125-
tool.hints
126-
.iter()
127-
.chain(tool.requirements.iter())
128-
.flatten()
129-
.filter_map(|req| {
130-
if let Requirement::EnvVarRequirement(env) = req {
131-
match &env.env_def {
132-
EnviromentDefs::Vec(vec) => Some(vec.iter().map(|i| (i.env_name.clone(), i.env_value.clone())).collect::<HashMap<_, _>>()),
133-
EnviromentDefs::Map(map) => Some(map.clone()),
134-
}
135-
} else {
136-
None
137-
}
138-
})
139-
.flatten()
140-
.collect()
125+
if let Some(env) = tool.get_requirement::<EnvVarRequirement>() {
126+
match &env.env_def {
127+
EnviromentDefs::Vec(vec) => vec.iter().map(|i| (i.env_name.clone(), i.env_value.clone())).collect::<HashMap<_, _>>(),
128+
EnviromentDefs::Map(map) => map.clone(),
129+
}
130+
} else {
131+
HashMap::new()
132+
}
141133
}
142134

143135
pub(crate) fn collect_inputs(
@@ -165,7 +157,7 @@ pub(crate) fn collect_inputs(
165157
#[cfg(test)]
166158
mod tests {
167159
use super::*;
168-
use cwl::{clt::CommandLineTool, requirements::EnvVarRequirement};
160+
use cwl::{clt::CommandLineTool, requirements::{EnvVarRequirement, Requirement}};
169161

170162
#[test]
171163
fn test_requirements_overwrite_hints() {

0 commit comments

Comments
 (0)