summary refs log tree commit diff
path: root/pkgs/development/compilers/elm
diff options
context:
space:
mode:
authorMatt McHenry <github@matt.mchenryfamily.org>2018-11-18 15:07:31 -0500
committerDomen Kožar <domen@enlambda.com>2018-11-21 10:57:11 +0000
commit206a1c00baea8678dcce8c75dcc3df48ba59539b (patch)
treeedfa6b9f78ba70eb54ef4404b4eef031ef243169 /pkgs/development/compilers/elm
parentae69f79ddbb6ddc6a7ba8830af2aeec1427dc321 (diff)
downloadnixpkgs-206a1c00baea8678dcce8c75dcc3df48ba59539b.tar
nixpkgs-206a1c00baea8678dcce8c75dcc3df48ba59539b.tar.gz
nixpkgs-206a1c00baea8678dcce8c75dcc3df48ba59539b.tar.bz2
nixpkgs-206a1c00baea8678dcce8c75dcc3df48ba59539b.tar.lz
nixpkgs-206a1c00baea8678dcce8c75dcc3df48ba59539b.tar.xz
nixpkgs-206a1c00baea8678dcce8c75dcc3df48ba59539b.tar.zst
nixpkgs-206a1c00baea8678dcce8c75dcc3df48ba59539b.zip
elm: extract makeDotElm and fetchElmDeps
Diffstat (limited to 'pkgs/development/compilers/elm')
-rw-r--r--pkgs/development/compilers/elm/default.nix40
-rw-r--r--pkgs/development/compilers/elm/fetchElmDeps.nix11
-rw-r--r--pkgs/development/compilers/elm/makeDotElm.nix30
3 files changed, 47 insertions, 34 deletions
diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix
index e9678ddc4ca..47a0d459a93 100644
--- a/pkgs/development/compilers/elm/default.nix
+++ b/pkgs/development/compilers/elm/default.nix
@@ -51,46 +51,17 @@
 # that the default of ~/.elm isn't used.
 
 let
-  makeDotElm = ver: deps:
-    let versionsDat = ./versions.dat;
-        cmds = lib.mapAttrsToList (name: info: let
-                 pkg = stdenv.mkDerivation {
-
-                   name = lib.replaceChars ["/"] ["-"] name + "-${info.version}";
-
-                   src = fetchurl {
-                     url = "https://github.com/${name}/archive/${info.version}.tar.gz";
-                     meta.homepage = "https://github.com/${name}/";
-                     inherit (info) sha256;
-                   };
-
-                   phases = [ "unpackPhase" "installPhase" ];
-
-                   installPhase = ''
-                     mkdir -p $out
-                     cp -r * $out
-                   '';
-
-                 };
-               in ''
-                 mkdir -p .elm/${ver}/package/${name}
-                 cp -R ${pkg} .elm/${ver}/package/${name}/${info.version}
-               '') deps;
-    in (lib.concatStrings cmds) + ''
-      mkdir -p .elm/${ver}/package;
-      cp ${versionsDat} .elm/${ver}/package/versions.dat;
-      chmod -R +w .elm
-    '';
-
+  fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
   hsPkgs = haskell.packages.ghc822.override {
     overrides = self: super: with haskell.lib;
       let elmPkgs = {
             elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
               # sadly with parallelism most of the time breaks compilation
               enableParallelBuilding = false;
-              preConfigure = ''
-                export ELM_HOME=`pwd`/.elm
-              '' + (makeDotElm "0.19.0" (import ./packages/elm-elm.nix));
+              preConfigure = fetchElmDeps {
+                elmPackages = (import ./packages/elm-elm.nix);
+                versionsDat = ./versions.dat;
+              };
               buildTools = drv.buildTools or [] ++ [ makeWrapper ];
               patches = [
                 (fetchpatch {
@@ -111,6 +82,7 @@ let
             `pacakge/nix/build.sh`
             */
             elm-format = self.callPackage ./packages/elm-format.nix {};
+            inherit fetchElmDeps;
           };
       in elmPkgs // {
         inherit elmPkgs;
diff --git a/pkgs/development/compilers/elm/fetchElmDeps.nix b/pkgs/development/compilers/elm/fetchElmDeps.nix
new file mode 100644
index 00000000000..3da2445e0c5
--- /dev/null
+++ b/pkgs/development/compilers/elm/fetchElmDeps.nix
@@ -0,0 +1,11 @@
+{stdenv, lib, fetchurl}:
+
+{elmPackages, versionsDat}:
+
+let
+  makeDotElm = import ./makeDotElm.nix {inherit stdenv lib fetchurl versionsDat;};
+
+in
+''
+  export ELM_HOME=`pwd`/.elm
+'' + (makeDotElm "0.19.0" elmPackages)
diff --git a/pkgs/development/compilers/elm/makeDotElm.nix b/pkgs/development/compilers/elm/makeDotElm.nix
new file mode 100644
index 00000000000..1bc8e61d27c
--- /dev/null
+++ b/pkgs/development/compilers/elm/makeDotElm.nix
@@ -0,0 +1,30 @@
+{stdenv, lib, fetchurl, versionsDat}:
+
+ver: deps:
+  let cmds = lib.mapAttrsToList (name: info: let
+               pkg = stdenv.mkDerivation {
+                 name = lib.replaceChars ["/"] ["-"] name + "-${info.version}";
+
+                 src = fetchurl {
+                   url = "https://github.com/${name}/archive/${info.version}.tar.gz";
+                   meta.homepage = "https://github.com/${name}/";
+                   inherit (info) sha256;
+                 };
+
+                 phases = [ "unpackPhase" "installPhase" ];
+
+                 installPhase = ''
+                   mkdir -p $out
+                   cp -r * $out
+                 '';
+
+               };
+             in ''
+               mkdir -p .elm/${ver}/package/${name}
+               cp -R ${pkg} .elm/${ver}/package/${name}/${info.version}
+             '') deps;
+  in (lib.concatStrings cmds) + ''
+    mkdir -p .elm/${ver}/package;
+    cp ${versionsDat} .elm/${ver}/package/versions.dat;
+    chmod -R +w .elm
+  ''