54 lines
1.3 KiB
Nix
54 lines
1.3 KiB
Nix
{
|
|
description = "addressbook";
|
|
|
|
inputs = {
|
|
easy-hls = {
|
|
url = "github:jkachmar/easy-hls-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
flake-utils = {
|
|
url = "github:numtide/flake-utils";
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, flake-utils, easy-hls }:
|
|
{ overlay = final: prev: {
|
|
haskellPackages = prev.haskellPackages.override ( old: {
|
|
overrides = final.lib.composeExtensions (old.overrides or (_: _: {})) (f: p: {
|
|
addressbook = f.callPackage ./. {};
|
|
});
|
|
});
|
|
};
|
|
}
|
|
//
|
|
flake-utils.lib.eachSystem ["x86_64-linux" "x86_64-darwin"] ( system:
|
|
let
|
|
pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; };
|
|
hp = pkgs.haskellPackages;
|
|
hls = (easy-hls.withGhcs [ hp.ghc ]).${system};
|
|
in
|
|
rec {
|
|
|
|
packages = { inherit (hp) addressbook; };
|
|
|
|
defaultPackage = packages.addressbook;
|
|
apps.addressbook = {
|
|
type = "app";
|
|
program = "${hp.addressbook}/bin/addressbook";
|
|
};
|
|
devShell = hp.shellFor {
|
|
packages = h: [h.addressbook];
|
|
withHoogle = true;
|
|
buildInputs = with pkgs; [
|
|
entr
|
|
cabal-install
|
|
hp.hlint
|
|
stylish-haskell
|
|
ghcid
|
|
hls
|
|
];
|
|
};
|
|
}
|
|
);
|
|
}
|