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
Pipeline #92 failed
......@@ -54,87 +54,95 @@ inputs:
type: Any[]?
outputs:
- id: output_parset
doc: Parset output file
type: File
outputBinding:
glob: output_parset
- id: input_files
doc: additional input files
type: File[]
outputBinding:
outputEval: |-
${
var outfiles = []
for(let step in inputs.parameters_input){
step = inputs.parameters_input[step]
for(let parameter in step['parameters']){
parameter = step['parameters'][parameter]
if (parameter != null && parameter.class =='File'){
outfiles.push(parameter)
}
- id: output_parset
doc: Parset output file
type: File
outputBinding:
glob: output_parset
- id: input_files
doc: additional input files
type: File[]
outputBinding:
outputEval: |-
${
var outfiles = []
for(let step in inputs.parameters_input){
step = inputs.parameters_input[step]
for(let parameter in step['parameters']){
parameter = step['parameters'][parameter]
if (parameter != null && parameter.class =='File'){
outfiles.push(parameter)
}
}
return outfiles
}
- id: input_directories
doc: additional input directory
type: Directory[]
outputBinding:
outputEval: |-
${
var outdirs = []
for(let step in inputs.parameters_input){
step = inputs.parameters_input[step]
for(let parameter in step['parameters']){
parameter = step['parameters'][parameter]
if (parameter != null && parameter.class=='Directory'){
outdirs.push(parameter)
}
}
return outfiles
}
- id: input_directories
doc: additional input directory
type: Directory[]
outputBinding:
outputEval: |
${
var outdirs = []
for(let step in inputs.parameters_input){
step = inputs.parameters_input[step]
for(let parameter in step['parameters']){
parameter = step['parameters'][parameter]
if (parameter != null && parameter.class=='Directory'){
outdirs.push(parameter)
}
}
return outdirs
}
- id: output_files
doc: expected output files
type: Any
outputBinding:
outputEval: |-
${
var out_names = {}
for(let step in inputs.parameters_input){
step = inputs.parameters_input[step]
if(!Object.hasOwnProperty("output_files")) continue;
for(var index in step['output_files']){
var file_id = step['output_files'][index]
var file_name = step['output_files'][file_id]
out_names[file_id] = file_name
}
}
return outdirs
}
- id: output_files
doc: expected output files
type: Any
outputBinding:
outputEval: |
${
var out_names = {}
for(var step_idx in inputs.parameters_input){
var step = inputs.parameters_input[step_idx]
var step_id = step['step_id']
var step_dirs = {}
if(!step.hasOwnProperty("output_files")) continue;
var step_files = {}
for(var index in step['output_files']){
var file_id = index
var file_name = step['output_files'][file_id]
step_files[file_id] = file_name
}
return out_names
out_names[step_id] = step_files
}
return out_names
}
- id: output_directories
doc: expected output directories
type: Any
outputBinding:
outputEval: |-
${
var out_names = {}
for(var step_idx in inputs.parameters_input){
var step = inputs.parameters_input[step_idx]
var step_id = step['step_id']
var step_dirs = {}
if(!step.hasOwnProperty("output_directories")) continue;
for(var index in step['output_directories']){
var file_id = index
var file_name = step['output_directories'][file_id]
step_dirs[file_id] = file_name
}
- id: output_directories
doc: expected output directories
type: Any
outputBinding:
outputEval: |-
${
var out_names = {}
for(let step in inputs.parameters_input){
step = inputs.parameters_input[step]
if(!Object.hasOwnProperty("output_directories")) continue;
for(var index in step['output_directories']){
var file_id = step['output_directories'][index]
var file_name = step['output_directories'][file_id]
out_names[file_id] = file_name
}
}
return out_names
}
out_names[step_id] = step_dirs
}
return out_names
}
stdout:
output_parset
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.
Finish editing this message first!
Please register or to comment