aboutsummaryrefslogtreecommitdiff
path: root/examples/ex-wdl/wdl-scatter-gather.nix
blob: 387d38272f934a4f6f77ffa3c13f4e05fecb4832 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# The scatter-gather example from https://github.com/openwdl/wdl
# translated to bionix
{ bionix ? import <bionix> {} }:

with bionix;
with lib;

let

  prepare = splitString "\n" (removeSuffix "\n" (readFile (stage {
    name = "prepare";
    buildInputs = [ pkgs.python3 ];
    buildCommand = ''
      python -c "print('one\ntwo\nthree\nfour', end=''')" > $out
    '';
  })));

  analysis = str: removeSuffix "\n" (readFile (stage {
    name = "analysis";
    buildInputs = [ pkgs.python ];
    buildCommand = ''
      python -c "print('_${str}_')" > $out
    '';
  }));

  gather = strs: stage {
    name = "gather";
    buildCommand = ''
      echo ${concatStringsSep " " strs} > $out
    '';
  };

in gather (map analysis prepare)