1{
2 stdenv,
3 lib,
4 fetchurl,
5 registryDat,
6}:
7
8ver: deps:
9let
10 cmds = lib.mapAttrsToList (
11 name: info:
12 let
13 pkg = stdenv.mkDerivation {
14 name = lib.replaceStrings [ "/" ] [ "-" ] name + "-${info.version}";
15
16 src = fetchurl {
17 url = "https://github.com/${name}/archive/${info.version}.tar.gz";
18 meta.homepage = "https://github.com/${name}/";
19 inherit (info) sha256;
20 };
21
22 dontConfigure = true;
23 dontBuild = true;
24
25 installPhase = ''
26 mkdir -p $out
27 cp -r * $out
28 '';
29 };
30 in
31 ''
32 mkdir -p .elm/${ver}/packages/${name}
33 cp -R ${pkg} .elm/${ver}/packages/${name}/${info.version}
34 ''
35 ) deps;
36in
37(lib.concatStrings cmds)
38+ ''
39 mkdir -p .elm/${ver}/packages;
40 cp ${registryDat} .elm/${ver}/packages/registry.dat;
41 chmod -R +w .elm
42''