Skip to content

Instantly share code, notes, and snippets.

@meditans
Created July 27, 2019 19:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save meditans/f439af1697651713385cf9558d0d643b to your computer and use it in GitHub Desktop.
Save meditans/f439af1697651713385cf9558d0d643b to your computer and use it in GitHub Desktop.
{ nixpkgs ? import <nixpkgs> { overlays = [ (import ./overlay.nix) ]; },
compiler ? "default",
withHoogle ? true,
}:
let
inherit (nixpkgs) pkgs;
f = { mkDerivation, base, containers, Dist, fgl, force-layout
, generic-lens, jsaddle-warp, lens, linear, MonadRandom, mtl
, random, reflex, reflex-dom, stdenv, text, these, time, z3
}:
mkDerivation {
pname = "package";
version = "0.1.0.0";
src = ./.;
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
base containers Dist fgl force-layout generic-lens jsaddle-warp
lens linear MonadRandom mtl random reflex reflex-dom text these
time z3
];
executableHaskellDepends = [ base ];
license = "unknown";
hydraPlatforms = stdenv.lib.platforms.none;
};
haskellPackages = if compiler == "default"
then pkgs.haskellPackages
else pkgs.haskell.packages.${compiler};
hspkgs = (
if withHoogle then
haskellPackages.override {
overrides = (self: super: {
ghc = super.ghc // { withPackages = super.ghc.withHoogle; };
ghcWithPackages = self.ghc.withPackages;
});
}
else haskellPackages
);
drv = hspkgs.callPackage f {};
in
if pkgs.lib.inNixShell then drv.env else drv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment