common-workflow-language / common-workflow-language/cwltool
Substitution error, unfinished block starting at position when using \\' in regex replace
- Dominant language
- Python
- Stars
- 376
- Forks
- 255
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 12
Description
## Expected Behavior
This error should not appear
## Actual Behavior
Substitution error occurs. The line `content = content.replace(/\\'/g, '');` causes the issue (when removed, the tool passes validation).
## Workflow Code
```
${
var content = [].concat(self)[0].contents;
content = content.replace(/\0/g, '');
content = content.replace('[','');
content = content.replace(']','');
content = content.replace(/\s/g, '');
content = content.replace(/\\'/g, '');
content = content.replace("'", '');
var content_arr = content.split(",");
return content_arr;
}
```
## Full Traceback
```pytb
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/cwltool/main.py", line 936, in main
tool = make_tool(uri, loadingContext)
File "/usr/local/lib/python3.7/site-packages/cwltool/load_tool.py", line 404, in make_tool
tool = loadingContext.construct_tool_object(processobj, loadingContext)
File "/usr/local/lib/python3.7/site-packages/cwltool/workflow.py", line 57, in default_make_tool
return command_line_tool.CommandLineTool(toolpath_object, loadingContext)
File "/usr/local/lib/python3.7/site-packages/cwltool/command_line_tool.py", line 322, in __init__
super(CommandLineTool, self).__init__(toolpath_object, loadingContext)
File "/usr/local/lib/python3.7/site-packages/cwltool/process.py", line 673, in __init__
validate_js_options,
File "/usr/local/lib/python3.7/site-packages/cwltool/validate_js.py", line 236, in validate_js_expressions
raise source_line.makeError(str(se))
cwltool.errors.WorkflowException: some.json:101:9: Substitution error, unfinished block starting at position 0: ${
some.json:101:9: var content = [].concat(self)[0].contents;
some.json:101:9: content = content.replace(/\0/g, '');
some.json:101:9: content = content.replace('[','');
some.json:101:9: content = content.replace(']','');
some.json:101:9: content = content.replace(/\s/g, '');
some.json:101:9: content = content.replace(/\\'/g, '');
some.json:101:9: content = content.replace("'", '');
some.json:101:9: var content_arr = content.split(",");
some.json:101:9: return content_arr;
some.json:101:9: }
```
## Environment
* cwltool version:
Check using 2.0.20200126090152
Contributor guide
Assessment
This issue has not been assessed yet.