summary refs log tree commit diff
path: root/pkgs/development/compilers/ghcjs-ng/mk-stage0.nix
blob: f45ebb4511d629a532ab4fd46ca5f0854a009f39 (plain) (blame)
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
{ configuredSrc
, runCommand
, cabal2nix
, yq
}:

runCommand "stage0.nix" {
  buildInputs = [cabal2nix yq];
} ''
  (
    printf '{ callPackage, configuredSrc }:\n\n{\n\n'
    yq '.packages | .[]' ${configuredSrc}/stack.yaml -r | sed 's|^\.$|./.|' | sed 's|^\.||' | while read f; do
      printf '  %s = callPackage\n' \
        "$(find ${configuredSrc}/$f -name "*.cabal" -maxdepth 1 \
          | xargs basename \
          | sed 's/.cabal$//')"
      printf '(%s) {};' \
        "$(cabal2nix ${configuredSrc}/$f \
          | sed 's|${configuredSrc}/|configuredSrc + |g')" \
        | sed 's/^/    /'
      printf '\n\n'
    done
    printf '}\n'
  ) > $out
''