nixpkgs/pkgs/development/beam-modules/fetch-mix-deps.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

66 lines
1.7 KiB
Nix
Raw Normal View History

{ stdenvNoCC, lib, elixir, hex, rebar, rebar3, cacert, git }@inputs:
2020-12-23 04:16:44 +00:00
2021-04-08 11:54:48 +00:00
{ pname
, version
2023-06-04 22:28:35 +00:00
, hash ? ""
, sha256 ? ""
2021-04-08 11:54:48 +00:00
, src
, mixEnv ? "prod"
, debug ? false
, meta ? { }
, patches ? []
, elixir ? inputs.elixir
, hex ? inputs.hex.override { inherit elixir; }
2021-04-08 11:54:48 +00:00
, ...
}@attrs:
2023-06-04 22:28:35 +00:00
let
hash_ =
if hash != "" then { outputHashAlgo = null; outputHash = hash; }
else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
else { outputHashAlgo = "sha256"; outputHash = lib.fakeSha256; };
in
2021-04-08 11:54:48 +00:00
stdenvNoCC.mkDerivation (attrs // {
2020-12-31 03:27:08 +00:00
nativeBuildInputs = [ elixir hex cacert git ];
2020-12-23 04:16:44 +00:00
MIX_ENV = mixEnv;
MIX_DEBUG = if debug then 1 else 0;
DEBUG = if debug then 1 else 0; # for rebar3
2021-04-08 11:54:48 +00:00
# the api with `mix local.rebar rebar path` makes a copy of the binary
MIX_REBAR = "${rebar}/bin/rebar";
MIX_REBAR3 = "${rebar3}/bin/rebar3";
# there is a persistent download failure with absinthe 1.6.3
# those defaults reduce the failure rate
HEX_HTTP_CONCURRENCY = 1;
HEX_HTTP_TIMEOUT = 120;
configurePhase = attrs.configurePhase or ''
runHook preConfigure
2021-01-03 03:09:49 +00:00
export HEX_HOME="$TEMPDIR/.hex";
2020-12-23 04:16:44 +00:00
export MIX_HOME="$TEMPDIR/.mix";
2021-04-08 11:54:48 +00:00
export MIX_DEPS_PATH="$TEMPDIR/deps";
# Rebar
export REBAR_GLOBAL_CONFIG_DIR="$TMPDIR/rebar3"
export REBAR_CACHE_DIR="$TMPDIR/rebar3.cache"
2021-04-08 11:54:48 +00:00
runHook postConfigure
2020-12-23 04:16:44 +00:00
'';
inherit patches;
dontBuild = true;
2021-04-08 11:54:48 +00:00
installPhase = attrs.installPhase or ''
runHook preInstall
mix deps.get ''${MIX_ENV:+--only $MIX_ENV}
2021-04-08 11:54:48 +00:00
find "$TEMPDIR/deps" -path '*/.git/*' -a ! -name HEAD -exec rm -rf {} +
cp -r --no-preserve=mode,ownership,timestamps $TEMPDIR/deps $out
runHook postInstall
2020-12-23 04:16:44 +00:00
'';
outputHashMode = "recursive";
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
2020-12-23 04:16:44 +00:00
inherit meta;
2023-06-04 22:28:35 +00:00
} // hash_)