2020-12-31 04:27:08 +01:00
|
|
|
{ stdenvNoCC, elixir, hex, rebar, rebar3, cacert, git }:
|
2020-12-23 05:16:44 +01:00
|
|
|
|
|
|
|
{ name, version, sha256, src, mixEnv ? "prod", debug ? false, meta ? { } }:
|
|
|
|
|
|
|
|
with stdenvNoCC.lib;
|
|
|
|
|
|
|
|
stdenvNoCC.mkDerivation ({
|
|
|
|
name = "mix-deps-${name}-${version}";
|
|
|
|
|
|
|
|
phases = [ "configurePhase" "downloadPhase" ];
|
|
|
|
|
2020-12-31 04:27:08 +01:00
|
|
|
nativeBuildInputs = [ elixir hex cacert git ];
|
2020-12-23 05:16:44 +01:00
|
|
|
|
|
|
|
inherit src;
|
|
|
|
|
|
|
|
MIX_ENV = mixEnv;
|
|
|
|
MIX_REBAR = "${rebar}/bin/rebar";
|
|
|
|
MIX_REBAR3 = "${rebar3}/bin/rebar3";
|
|
|
|
MIX_DEBUG = if debug then 1 else 0;
|
|
|
|
|
|
|
|
configurePhase = ''
|
|
|
|
mkdir -p $out/deps
|
|
|
|
mkdir -p $out/.hex
|
|
|
|
export HEX_HOME="$out/.hex";
|
|
|
|
export MIX_HOME="$TEMPDIR/.mix";
|
|
|
|
export MIX_DEPS_PATH="$out/deps";
|
|
|
|
'';
|
|
|
|
|
|
|
|
downloadPhase = ''
|
|
|
|
ln -s ${src}/mix.exs ./mix.exs
|
|
|
|
ln -s ${src}/mix.lock ./mix.lock
|
|
|
|
mix deps.get --only ${mixEnv}
|
|
|
|
'';
|
|
|
|
|
|
|
|
outputHashAlgo = "sha256";
|
|
|
|
outputHashMode = "recursive";
|
|
|
|
outputHash = sha256;
|
|
|
|
|
|
|
|
impureEnvVars = stdenvNoCC.lib.fetchers.proxyImpureEnvVars;
|
|
|
|
inherit meta;
|
|
|
|
})
|