45 lines
1.2 KiB
Nix
45 lines
1.2 KiB
Nix
{
|
|
compiler ? "ghc865",
|
|
withHIE ? false
|
|
}:
|
|
|
|
let
|
|
# pin all-hies for getting the language server
|
|
all-hies = fetchTarball {
|
|
url = "https://github.com/infinisil/all-hies/tarball/b8fb659620b99b4a393922abaa03a1695e2ca64d";
|
|
sha256 = "sha256:0br6wsqpfk1lzz90f7zw439w1ir2p54268qilw9l2pk6yz7ganfx";
|
|
};
|
|
pkgs = import (
|
|
builtins.fetchGit {
|
|
name = "nixpkgs-pinned";
|
|
url = https://github.com/NixOS/nixpkgs/;
|
|
ref = "refs/heads/release-20.03";
|
|
rev = "faf5bdea5d9f0f9de26deaa7e864cdcd3b15b4e8";
|
|
}) {
|
|
# Pass no config for purity
|
|
config = {};
|
|
overlays = if withHIE then [
|
|
(import all-hies {}).overlay
|
|
] else [];
|
|
};
|
|
hp = pkgs.haskell.packages."${compiler}";
|
|
src = pkgs.nix-gitignore.gitignoreSource [] ./.;
|
|
drv = hp.callCabal2nix "Hash2Pub" "${src}/Hash2Pub.cabal" {};
|
|
in
|
|
{
|
|
my_project = drv;
|
|
shell = hp.shellFor {
|
|
withHoogle = true;
|
|
packages = p: [ drv ];
|
|
buildInputs = with hp;
|
|
[
|
|
haddock
|
|
cabal-install
|
|
hlint
|
|
stylish-haskell
|
|
pkgs.python3Packages.asn1ate
|
|
]
|
|
++ (if withHIE then [ hie ] else []);
|
|
};
|
|
}
|