cwlVersion: v1.1
class: ExpressionTool
requirements:
InlineJavascriptRequirement: {}
inputs:
dir:
type: Directory
loadListing: shallow_listing
outputs:
fasta: File[]
metadata: File[]
expression: |
${
var dir = inputs.dir;
var fasta = [];
var metadata = [];
dir.listing.sort(function(a, b) { return a.basename < b.basename; });
for (var i = 0; i < dir.listing.length; i++) {
if (dir.listing[i].basename.substr(-6) == ".fasta") {
fasta.push(dir.listing[i]);
}
if (dir.listing[i].basename.substr(-5) == ".yaml") {
metadata.push(dir.listing[i]);
}
}
if (fasta.length != metadata.length) {
throw "They dont match";
}
return {"fasta": fasta, "metadata": metadata};
}