Open1
CWLでjavascript部分のデバッグ
以下のような使い方をしたいときに、どうも値がうまくとれない、指定するべき値がとれないといったときのデバッグ方法として、
message:
type: string
valueFrom: $(inputs.input_file.nameroot)
ひとつは、わざとinputsに、わざと存在しないものを渡して、
valueFrom: $(inputs.xyzxyzxyz.nameroot)
つけて実行する
scatterの際も同様
ただし、--validate
では、javascript
RROR Cannot make scatter job: hello_world_fileoutput2.cwl:27:1: Expression evaluation error:
Expecting value: line 1 column 1 (char 0)
script was:
01 "use strict";
02 var inputs = {
03 "input_file": {
04 "class": "File",
05 "location":
"file:///home/xxxxxxxx/work/CWL/cwl-samples-2023/eee_fff.txt",
06 "size": 8,
07 "basename": "eee_fff.txt",
08 "nameroot": "eee_fff",
09 "nameext": ".txt",
10 "path":
"/tmp/0ui0yjo5/stgbc0e3839-89fe-4413-b82b-65122f700c9c/eee_fff.txt",
11 "dirname":
"/tmp/0ui0yjo5/stgbc0e3839-89fe-4413-b82b-65122f700c9c"
12 },
13 "message": "eee_fff"
14 };
15 var self = null;
16 var runtime = {
17 "cores": 1,
18 "ram": 256,
19 "tmpdirSize": 1024,
20 "outdirSize": 1024,
21 "tmpdir": "/tmp/aeb23rt8",
22 "outdir": "/tmp/v7m_lmht"
23 };
24 (function(){return ((inputs.inputxfile.nameroot));})()
stdout was: ''
stderr was: 'evalmachine.<anonymous>:24
(function(){return ((inputs.inputxfile.nameroot));})()
^
TypeError: Cannot read properties of undefined (reading
'nameroot')
at evalmachine.<anonymous>:24:40
at evalmachine.<anonymous>:24:53
at Script.runInContext (node:vm:133:12)
at Script.runInNewContext (node:vm:138:17)
at Object.runInNewContext (node:vm:296:38)
at Socket.<anonymous> ([eval]:11:57)
at Socket.emit (node:events:519:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode
(node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)'
ERROR Workflow cannot make any more progress.
この例でわざとまちがえたのは、inputxfile
で、もともとはinput_file