Skip to content
Snippets Groups Projects
Commit a79ad4cb authored by Mattia Mancini's avatar Mattia Mancini
Browse files

Refactor and add File/Dir Selector

parent e0120734
No related branches found
No related tags found
No related merge requests found
...@@ -82,7 +82,7 @@ outputs: ...@@ -82,7 +82,7 @@ outputs:
doc: additional input directory doc: additional input directory
type: Directory[] type: Directory[]
outputBinding: outputBinding:
outputEval: |- outputEval: |
${ ${
var outdirs = [] var outdirs = []
for(let step in inputs.parameters_input){ for(let step in inputs.parameters_input){
...@@ -96,23 +96,29 @@ outputs: ...@@ -96,23 +96,29 @@ outputs:
} }
return outdirs return outdirs
} }
- id: output_files - id: output_files
doc: expected output files doc: expected output files
type: Any type: Any
outputBinding: outputBinding:
outputEval: |- outputEval: |
${ ${
var out_names = {} var out_names = {}
for(let step in inputs.parameters_input){ for(var step_idx in inputs.parameters_input){
step = inputs.parameters_input[step] var step = inputs.parameters_input[step_idx]
var step_id = step['step_id']
var step_dirs = {}
if(!step.hasOwnProperty("output_files")) continue;
if(!Object.hasOwnProperty("output_files")) continue; var step_files = {}
for(var index in step['output_files']){ for(var index in step['output_files']){
var file_id = step['output_files'][index] var file_id = index
var file_name = step['output_files'][file_id] var file_name = step['output_files'][file_id]
out_names[file_id] = file_name step_files[file_id] = file_name
} }
out_names[step_id] = step_files
} }
return out_names return out_names
} }
...@@ -123,16 +129,18 @@ outputs: ...@@ -123,16 +129,18 @@ outputs:
outputEval: |- outputEval: |-
${ ${
var out_names = {} var out_names = {}
for(let step in inputs.parameters_input){ for(var step_idx in inputs.parameters_input){
step = inputs.parameters_input[step] var step = inputs.parameters_input[step_idx]
var step_id = step['step_id']
if(!Object.hasOwnProperty("output_directories")) continue; var step_dirs = {}
if(!step.hasOwnProperty("output_directories")) continue;
for(var index in step['output_directories']){ for(var index in step['output_directories']){
var file_id = step['output_directories'][index] var file_id = index
var file_name = step['output_directories'][file_id] var file_name = step['output_directories'][file_id]
out_names[file_id] = file_name step_dirs[file_id] = file_name
} }
out_names[step_id] = step_dirs
} }
return out_names return out_names
} }
......
class: ExpressionTool
cwlVersion: v1.0
id: parsetselector
inputs:
- id: inputs
type: Any
doc: input files
- id: step_name
type: string
doc: 'if true selects parset_a, files_a if false selects parset_b files_b'
- id: type
type: string
outputs:
- id: output
type: [File, Directory]
expression: |
$(
{'output': inputs.inputs[step_name][type]}
)
label: ParsetSelector
requirements:
- class: InlineJavascriptRequirement
{
"parameters_input": [{
"step_type": "averager",
"step_id": "average",
"output_files": {
"parmdb": "fily"
},
"output_directories": {
"parmdb": "diry"
},
"parameters": {
"timestep": 1,
"freqstep": 1,
"strategy": {
"class": "File",
"location": "file:///etc/hostname",
"size": 0,
"nameext": ""
}
}
}]
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment