common-workflow-language / common-workflow-language/user_guide

Add discussion about how command lines work; spaces in options

Ouverte
#39 5 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
Langage dominant
Common Workflow Language
Étoiles
42
Forks
65
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

Real world example:
https://github.com/gijzelaerr/spiel/blob/181b889c77a59a83f1939a2e2c08d8aea5e14469/steps/wsclean.cwl

The tool expects `-size 2048 2048` and the POSIX shell `sh` turns that into three entries in the argument array: `-size`, `2048`, and `2048`. However this description passes the sizes in as a single string which becomes only two entries `-size` and `2048 2048` which is rejected by the tool.

Ideally the tool would accept `2048 2048` (with the embedded space) or have split options for each element (like `-xsize` and `-ysize`)

Here's a workaround using `arguments` that doesn't require any code changes to the underlying tool

```
cwlVersion: v1.0
class: CommandLineTool

baseCommand: wsclean

hints:
DockerRequirement:
dockerImageId: kernsuite/wsclean
dockerFile: |
FROM kernsuite/base:3
RUN docker-apt-install wsclean

inputs:
ms:
type: Directory
inputBinding:
position: 1

xsize:
type: int
default: 2048

ysize:
type: int
default: 2048

scale:
type: string
default: 1asec
inputBinding:
prefix: -scale

arguments:
- -size
- $(inputs.xsize)
- $(inputs.ysize)

outputs:
dirty:
type: File
outputBinding:
glob: wsclean-dirty.fits

clean:
type: File
outputBinding:
glob: wsclean-clean.fits
```

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.