ddc7ff9588c67d396b28226d344a493a7a281200
[arvados.git] / sdk / cwl / tests / 12213-keepref-expr.cwl
1 cwlVersion: v1.0
2 class: ExpressionTool
3 requirements:
4   InlineJavascriptRequirement: {}
5 inputs:
6   dir: Directory
7 outputs:
8   out: Directory[]
9 expression: |
10   ${
11     var samples = {};
12     var pattern = /^(.+)(_S[0-9]{1,3}_)(.+)$/;
13     for (var i = 0; i < inputs.dir.listing.length; i++) {
14       var file = inputs.dir.listing[i];
15       var groups = file.basename.match(pattern);
16       if (groups) {
17         var sampleid = groups[1];
18         if (!samples[sampleid]) {
19           samples[sampleid] = [];
20         }
21         samples[sampleid].push(file);
22       }
23     }
24     var dirs = [];
25     Object.keys(samples).sort().forEach(function(sampleid, _) {
26       dirs.push({"class": "Directory",
27                  "basename": sampleid,
28                  "listing": samples[sampleid]});
29     });
30     return {"out": dirs};
31   }