summary refs log tree commit diff
path: root/pkgs/development/beam-modules/lib.nix
diff options
context:
space:
mode:
authorJustin Wood <justin.k.wood@gmail.com>2017-06-23 12:38:10 -0400
committerJustin Wood <justin.k.wood@gmail.com>2017-06-26 23:13:58 -0400
commit3595f8e8d69e10b4989052e52ba4f08ce30857d2 (patch)
treea42f13cf949398acc5ab437cef86ba6dacbdc9ea /pkgs/development/beam-modules/lib.nix
parent838956b179f786eb27a0d21eeddd5909f083ee29 (diff)
downloadnixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar
nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.gz
nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.bz2
nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.lz
nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.xz
nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.zst
nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.zip
Add in scope rebar version
Diffstat (limited to 'pkgs/development/beam-modules/lib.nix')
-rw-r--r--pkgs/development/beam-modules/lib.nix27
1 files changed, 23 insertions, 4 deletions
diff --git a/pkgs/development/beam-modules/lib.nix b/pkgs/development/beam-modules/lib.nix
index 9d7a4bbd34ed..df0af4057637 100644
--- a/pkgs/development/beam-modules/lib.nix
+++ b/pkgs/development/beam-modules/lib.nix
@@ -43,12 +43,31 @@ rec {
         mkDerivation = pkgs.makeOverridable builder;
       };
 
-  callElixir = drv: args:
+  /* Uses generic-builder to evaluate provided drv containing Elixir version
+  specific data.
+
+  drv: package containing version-specific args;
+  vsn: minimum OTP version that Elixir will build on;
+  builder: generic builder for all Erlang versions;
+  args: arguments merged into version-specific args, used mostly to customize
+        dependencies;
+
+  Arguments passed to the generic-builder are overridable.
+
+  Please note that "mkDerivation" defined here is the one called from 1.4.nix
+  and similar files.
+  */
+  callElixir = drv: vsn: args:
     let
+      inherit (stdenv.lib) versionAtLeast;
       builder = callPackage ../../development/interpreters/elixir/generic-builder.nix args;
     in
-      callPackage drv {
-        mkDerivation = pkgs.makeOverridable builder;
-      };
+      if versionAtLeast (getVersion args.erlang) vsn
+      then
+        callPackage drv {
+          mkDerivation = pkgs.makeOverridable builder;
+        }
+      else
+        throw "Elixir requires at least Erlang/OTP R${vsn}.";
 
 }