I am writing a workflow for a non bioinformatics usage that takes in some file (Alembic geometries), process them and create another Alembic file
Typical usage of application are as follow
-i <some-input-file(s)> -o <some-output-file(s)>
As CWL runtime performs the operation in an encapsulated environment locally, docker or cloud, the output file are in the context/directory of that environment
My experimentation indicates that I can’t provide a full path for output (because it makes no sense in that encapsulated environment)
What is the best practice for handling such use cases ? Write such workflow with 2 steps, step 1 is the work itself and step 2 is the copying of the results to the desired location ?
Here is my current workflow (the output file is written/copied to the directory where I ran the CWL script)
Let’s say I want the file in a different final location, I will need to manually copy it
#!/usr/bin/env cwl-runner
cwlVersion: v1.0
class: CommandLineTool
requirements:
- class: InlineJavascriptRequirement
baseCommand: blender_ttcam
arguments: ["--script", $(inputs.blenderScript.path), "--input", $(inputs.inputAlembicMesh.path), "--output", $(inputs.alembicCamera)]
inputs:
- id: blenderScript
type: File
- id: inputAlembicMesh
type: File
- id: alembicCamera
type: string
successCodes:
- 0
outputs:
outputAlembicCamera:
type: File
outputBinding:
glob: $(inputs.alembicCamera)