Skip to content

Instantly share code, notes, and snippets.

@jb55

jb55/default.nix Secret

Created September 26, 2017 14:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jb55/6e93156ca7fe90a36bb08df0408446a3 to your computer and use it in GitHub Desktop.
Save jb55/6e93156ca7fe90a36bb08df0408446a3 to your computer and use it in GitHub Desktop.
{ nixpkgs ? import (fetchTarball "https://github.com/jb55/nixpkgs/archive/44b1057ef75bbf1b87aea989fa644fff6205756f.tar.gz") {}
, profiling ? false
, compiler ? null
}:
let pkgs = nixpkgs.pkgs;
overrideCabal = pkgs.haskell.lib.overrideCabal;
extraDeps = with pkgs; [ elmPackages.elm closurecompiler ];
fetchFromGitHub = pkgs.fetchFromGitHub;
haskellOverrides = super: {
elm-export = overrideCabal super.elm-export (attrs: {
src = pkgs.fetchFromGitHub {
owner = "FPtje";
repo = "elm-export";
rev = "9571a1ed99c65e14d7ddcf73153bbfd08a8b17e5";
sha256 = "0h2kc9p3v0p8ild1milcrc5iydz33pz4z0fh6nnqxs0rahzdqw86";
};
});
servant-elm = overrideCabal super.servant-elm (attrs: {
doCheck = false;
});
};
baseHaskellPackages =
if compiler != null
then pkgs.haskell.packages."${compiler}"
else pkgs.haskellPackages;
profilingOverride = super: if profiling then {
mkDerivation = args: super.mkDerivation (args // {
enableLibraryProfiling = true;
});
} else {};
haskellPackages = baseHaskellPackages.override {
overrides = self: super: profilingOverride super // haskellOverrides super;
};
project = haskellPackages.callPackage ./project.nix {
inherit extraDeps;
};
stdenv = nixpkgs.stdenv;
drv = stdenv.mkDerivation rec {
name = "trackup-${version}";
version = "0.10";
src = project.src;
buildPhase = ''
${project.env.shellHook}
mkdir -p /tmp/elmhome
export HOME=/tmp/elmhome
'';
installPhase = ''
PREFIX=$out make install
'';
buildInputs = project.env.nativeBuildInputs;
};
in
drv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment