diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/elm/makeDotElm.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/elm/makeDotElm.nix | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/compilers/elm/makeDotElm.nix b/nixpkgs/pkgs/development/compilers/elm/makeDotElm.nix new file mode 100644 index 000000000000..43252747c3a3 --- /dev/null +++ b/nixpkgs/pkgs/development/compilers/elm/makeDotElm.nix @@ -0,0 +1,35 @@ +{stdenv, lib, fetchurl, registryDat}: + +ver: deps: + let cmds = lib.mapAttrsToList (name: info: let + pkg = stdenv.mkDerivation { + name = lib.replaceStrings ["/"] ["-"] name + "-${info.version}"; + + src = fetchurl { + url = "https://github.com/${name}/archive/${info.version}.tar.gz"; + meta.homepage = "https://github.com/${name}/"; + inherit (info) sha256; + }; + + configurePhase = '' + true + ''; + + buildPhase = '' + true + ''; + + installPhase = '' + mkdir -p $out + cp -r * $out + ''; + }; + in '' + mkdir -p .elm/${ver}/packages/${name} + cp -R ${pkg} .elm/${ver}/packages/${name}/${info.version} + '') deps; + in (lib.concatStrings cmds) + '' + mkdir -p .elm/${ver}/packages; + cp ${registryDat} .elm/${ver}/packages/registry.dat; + chmod -R +w .elm + '' |