at 23.11-beta 57 lines 1.2 kB view raw
1{ lib, stdenv, fetchFromGitHub, writeText, elixir }: 2 3let 4 shell = drv: stdenv.mkDerivation { 5 name = "interactive-shell-${drv.name}"; 6 buildInputs = [ drv ]; 7 }; 8 9 pkg = self: stdenv.mkDerivation rec { 10 pname = "hex"; 11 version = "2.0.6"; 12 13 src = fetchFromGitHub { 14 owner = "hexpm"; 15 repo = "hex"; 16 rev = "v${version}"; 17 sha256 = "sha256-fSADQDrqh5U/TdhaHXsMiLMk1wtQ0gEiTqEclJ2w2nY="; 18 }; 19 20 setupHook = writeText "setupHook.sh" '' 21 addToSearchPath ERL_LIBS "$1/lib/erlang/lib/" 22 ''; 23 24 dontStrip = true; 25 26 buildInputs = [ elixir ]; 27 28 buildPhase = '' 29 runHook preBuild 30 export HEX_OFFLINE=1 31 export HEX_HOME=./ 32 export MIX_ENV=prod 33 mix compile 34 runHook postBuild 35 ''; 36 37 installPhase = '' 38 runHook preInstall 39 40 mkdir -p $out/lib/erlang/lib 41 cp -r ./_build/prod/lib/hex $out/lib/erlang/lib/ 42 43 runHook postInstall 44 ''; 45 46 meta = { 47 description = "Package manager for the Erlang VM https://hex.pm"; 48 license = lib.licenses.mit; 49 homepage = "https://github.com/hexpm/hex"; 50 maintainers = with lib.maintainers; [ ericbmerritt ]; 51 }; 52 53 passthru = { 54 env = shell self; 55 }; 56}; 57in lib.fix pkg