Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 writeText, 6 elixir, 7}: 8 9let 10 shell = 11 drv: 12 stdenv.mkDerivation { 13 name = "interactive-shell-${drv.name}"; 14 buildInputs = [ drv ]; 15 }; 16 17 pkg = 18 self: 19 stdenv.mkDerivation rec { 20 pname = "hex"; 21 version = "2.2.2"; 22 23 src = fetchFromGitHub { 24 owner = "hexpm"; 25 repo = "hex"; 26 rev = "v${version}"; 27 sha256 = "sha256-Qih10OeI7KsnAthAW0yuH+YL8uoeLy7tOVn9rdkGA4M="; 28 }; 29 30 setupHook = writeText "setupHook.sh" '' 31 addToSearchPath ERL_LIBS "$1/lib/erlang/lib/" 32 ''; 33 34 dontStrip = true; 35 36 buildInputs = [ elixir ]; 37 38 buildPhase = '' 39 runHook preBuild 40 export HEX_OFFLINE=1 41 export HEX_HOME=./ 42 export MIX_ENV=prod 43 mix compile 44 runHook postBuild 45 ''; 46 47 installPhase = '' 48 runHook preInstall 49 50 mkdir -p $out/lib/erlang/lib 51 cp -r ./_build/prod/lib/hex $out/lib/erlang/lib/ 52 53 runHook postInstall 54 ''; 55 56 meta = { 57 description = "Package manager for the Erlang VM https://hex.pm"; 58 license = lib.licenses.mit; 59 homepage = "https://github.com/hexpm/hex"; 60 maintainers = with lib.maintainers; [ ericbmerritt ]; 61 }; 62 63 passthru = { 64 env = shell self; 65 }; 66 }; 67in 68lib.fix pkg