Merge branch '14198-fed-testing' refs #14198
[arvados.git] / sdk / cwl / tests / 12213-keepref-expr.cwl
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: Apache-2.0
4
5 cwlVersion: v1.0
6 class: ExpressionTool
7 requirements:
8   InlineJavascriptRequirement: {}
9 inputs:
10   dir: Directory
11 outputs:
12   out: Directory[]
13 expression: |
14   ${
15     var samples = {};
16     var pattern = /^(.+)(_S[0-9]{1,3}_)(.+)$/;
17     for (var i = 0; i < inputs.dir.listing.length; i++) {
18       var file = inputs.dir.listing[i];
19       var groups = file.basename.match(pattern);
20       if (groups) {
21         var sampleid = groups[1];
22         if (!samples[sampleid]) {
23           samples[sampleid] = [];
24         }
25         samples[sampleid].push(file);
26       }
27     }
28     var dirs = [];
29     Object.keys(samples).sort().forEach(function(sampleid, _) {
30       dirs.push({"class": "Directory",
31                  "basename": sampleid,
32                  "listing": samples[sampleid]});
33     });
34     return {"out": dirs};
35   }