{ stdenv, fetchFromGitHub, writeText, elixir }: let shell = drv: stdenv.mkDerivation { name = "interactive-shell-${drv.name}"; buildInputs = [ drv ]; }; pkg = self: stdenv.mkDerivation rec { name = "hex"; version = "v0.14.0"; src = fetchFromGitHub { owner = "hexpm"; repo = "hex"; rev = "${version}"; sha256 = "042rcwznb6cf9khn4l969axf7vhk53gy3rp23y6c8fhfp1472pai"; }; setupHook = writeText "setupHook.sh" '' addToSearchPath ERL_LIBS "$1/lib/erlang/lib/" ''; dontStrip = true; buildInputs = [ elixir ]; buildPhase = '' runHook preBuild export HEX_OFFLINE=1 export HEX_HOME=./ export MIX_ENV=prod mix compile runHook postBuild ''; installPhase = '' runHook preInstall mkdir -p $out/lib/erlang/lib cp -r ./_build/prod/lib/hex $out/lib/erlang/lib/ runHook postInstall ''; meta = { description = "Package manager for the Erlang VM https://hex.pm"; license = stdenv.lib.licenses.mit; homepage = https://github.com/hexpm/hex; maintainers = with stdenv.lib.maintainers; [ ericbmerritt ]; }; passthru = { env = shell self; }; }; in stdenv.lib.fix pkg