summary refs log tree commit diff
path: root/pkgs/development/erlang-modules/build-hex.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/erlang-modules/build-hex.nix')
-rw-r--r--pkgs/development/erlang-modules/build-hex.nix94
1 files changed, 2 insertions, 92 deletions
diff --git a/pkgs/development/erlang-modules/build-hex.nix b/pkgs/development/erlang-modules/build-hex.nix
index 7ba8fab9bd2a..ff6e47e5a805 100644
--- a/pkgs/development/erlang-modules/build-hex.nix
+++ b/pkgs/development/erlang-modules/build-hex.nix
@@ -1,109 +1,19 @@
-{ stdenv, erlang, rebar3, openssl, libyaml, fetchHex, fetchFromGitHub,
-  rebar3-pc, buildEnv }:
+{ stdenv, buildRebar3, fetchHex }:
 
 { name, version, sha256
 , hexPkg ? name
-, buildInputs ? [], erlangDeps ? [], pluginDeps ? []
-, postPatch ? ""
-, compilePorts ? false
-, meta ? {}
 , ... }@attrs:
 
 with stdenv.lib;
 
 let
-  plugins = pluginDeps ++ (if compilePorts then [rebar3-pc] else []);
-  getDeps = drv: [drv] ++ (map getDeps drv.erlangDeps);
-  recursiveDeps = unique (flatten (map getDeps erlangDeps));
-  recursivePluginsDeps = unique (flatten (map getDeps plugins));
-
-  erlEnv = drv: buildEnv {
-    name = "erlang-env-${drv.name}";
-    paths = [ drv ] ++ recursiveDeps;
-    ignoreCollisions = false;
-    meta = drv.meta;
-  };
-
-  shell = drv: let
-    drvEnv = erlEnv drv;
-  in stdenv.mkDerivation {
-    name = "interactive-shell-${drv.name}";
-    nativeBuildInputs = [ erlang drvEnv ];
-    shellHook = ''
-      export ERL_LIBS="${drvEnv}";
-    '';
-  };
-  pkg = self: stdenv.mkDerivation (attrs // {
-    name = "${name}-${version}";
-
-    buildInputs = buildInputs ++ [ erlang rebar3 openssl libyaml ];
+  pkg = self: buildRebar3 (attrs // {
 
     src = fetchHex {
       pkg = hexPkg;
       inherit version;
       inherit sha256;
     };
-
-    postPatch = ''
-      rm -f rebar rebar3
-      if [ -e "src/${name}.app.src" ]; then
-        sed -i -e 's/{ *vsn *,[^}]*}/{vsn, "${version}"}/' "src/${name}.app.src"
-      fi
-
-      ${if compilePorts then ''
-        echo "{plugins, [pc]}." >> rebar.config
-      '' else ''''}
-
-      ${rebar3.setupRegistry}
-
-      ${postPatch}
-    '';
-
-    configurePhase = ''
-      runHook preConfigure
-      ${concatMapStrings (dep: ''
-        header "linking erlang dependency ${dep}"
-        ln -s "${dep}/${dep.name}" "_build/default/lib/${dep.name}"
-        stopNest
-      '') recursiveDeps}
-      ${concatMapStrings (dep: ''
-        header "linking rebar3 plugins ${dep}"
-        ln -s "${dep}/${dep.name}" "_build/default/plugins/${dep.name}"
-        stopNest
-      '') recursivePluginsDeps}
-      runHook postConfigure
-    '';
-
-    buildPhase = ''
-      runHook preBuild
-      HOME=. rebar3 compile
-      ${if compilePorts then ''
-        HOME=. rebar3 pc compile
-      '' else ''''}
-      runHook postBuild
-    '';
-
-    installPhase = ''
-      runHook preInstall
-      mkdir -p "$out/${name}"
-      for reldir in src ebin priv include; do
-        fd="_build/default/lib/${name}/$reldir"
-        [ -d "$fd" ] || continue
-        cp -Hrt "$out/${name}" "$fd"
-        success=1
-      done
-      runHook postInstall
-    '';
-
-    meta = {
-      inherit (erlang.meta) platforms;
-    } // meta;
-
-    passthru = {
-      packageName = name;
-      env = shell self;
-      inherit erlangDeps;
-    };
   });
 in
   fix pkg