The NextFlowPlatform doesn't escape everything it should.
Example component src/foo/config.vsh.yaml:
functionality:
name: foo
arguments:
- name: "--input"
type: file
required: true
- name: "--output"
type: file
direction: output
description: |
here are some characters you might see in a description:
$§1234567890''^°+"*ç%&/()=?`\
required: true
resources:
- type: r_script
dest: script.R
text: |
print(par)
readr::write_rds(par, par$output)
platforms:
- type: docker
image: rocker/tidyverse:4.0.5
- type: nextflow
Execution log:
$ viash ns build --setup cb
...
$ NXF_VER=21.04.1 nextflow run target/nextflow/src/main.nf --input src --output out.rds
N E X T F L O W ~ version 21.04.1
Launching `target/nextflow/src/main.nf` [tender_kare] - revision: 3675b40efc
Unable to parse config file: 'target/nextflow/src/nextflow.config'
Compile failed for sources FixedSetSources[name='/groovy/script/Script6F0CF58C0BCB663ED15F6F34A01D4CDE/_nf_config_931fbc31']. Cause: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/groovy/script/Script6F0CF58C0BCB663ED15F6F34A01D4CDE/_nf_config_931fbc31: 4: Unexpected input: '{' @ line 4, column 10.
params {
^
1 error
This is what the generated nextflow.config looks like:
output {
name = "output"
otype = "--"
required = true
type = "file"
direction = "Output"
multiple = false
multiple_sep = ":"
value = "${params.foo__output}"
description = "here are some characters you might see in a description:
$§1234567890''^°+"*ç%&/()=?`\
"
}
This should have been escaped to be:
output {
name = "output"
otype = "--"
required = true
type = "file"
direction = "Output"
multiple = false
multiple_sep = ":"
value = "${params.foo__output}"
description = "here are some characters you might see in a description:\n\$§1234567890''^°+\"*ç%&/()=?`\\\n"
}
Commit 4adcf25cb139699309d816d6f06c694dd75b8cc7 extends the nxf test to include some of these special characters to see if the pipeline can still run.
The NextFlowPlatform doesn't escape everything it should.
Example component
src/foo/config.vsh.yaml
:Execution log:
This is what the generated nextflow.config looks like:
This should have been escaped to be:
Commit 4adcf25cb139699309d816d6f06c694dd75b8cc7 extends the nxf test to include some of these special characters to see if the pipeline can still run.