]> Git — Sourcephile - julm/AoC-2020.git/blob - flake.nix
prepare multiple days
[julm/AoC-2020.git] / flake.nix
1 {
2 inputs.nixpkgs.url = "flake:nixpkgs"; # Reuse any local nixpkgs, at cost of reproductibility
3 inputs.flake-utils.url = "github:numtide/flake-utils";
4 outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem (system: let
5 pkgs = inputs.nixpkgs.legacyPackages.${system};
6 ghc = null; # Use default ghc, but could have been ghc901
7 haskellPackages =
8 if ghc == null
9 then pkgs.haskellPackages
10 else pkgs.haskell.packages.${ghc};
11 hs = haskellPackages.extend (with pkgs.haskell.lib; hfinal: hprev: {
12 "AoC202004" = hfinal.callCabal2nix "AoC2020" ./Day04 {};
13 });
14 in rec {
15 devShell = hs.shellFor {
16 packages = p: [ p."AoC202004" ];
17 withHoogle = false;
18 nativeBuildInputs = [
19 hs.cabal-install
20 hs.haskell-language-server
21 #hs.hpc
22 ];
23 buildInputs = [
24 #hs.ghcid
25 #hs.ormolu
26 #hs.hlint
27 #pkgs.nixpkgs-fmt
28 ];
29 };
30 packages = {
31 "Day04" = hs."AoC202004";
32 };
33 apps = pkgs.lib.genAttrs [
34 "Day04"
35 ] (day: {
36 type = "app";
37 program = "${packages.Day04}/bin/Day";
38 }
39 );
40 }
41 );
42 }