aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
blob: 432d3a0437c0d736a6f40fa6d8977622dbf304ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
{
  nixConfig = {
    extra-trusted-public-keys = ["hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="];
    extra-substituters = ["https://cache.iog.io"];
  };
  description = "Probabilistic Programming Language";
  inputs.haskellNix.url = "github:input-output-hk/haskell.nix";
  inputs.nixpkgs.follows = "haskellNix/nixpkgs-unstable";
  inputs.flake-utils.url = "github:numtide/flake-utils";
  outputs = {
    self,
    nixpkgs,
    flake-utils,
    haskellNix,
  }:
    flake-utils.lib.eachSystem ["x86_64-linux"] (system: let
      overlays = [
        haskellNix.overlay
        (final: prev: {
          ppl = final.haskell-nix.project' {
            src = ./.;
            compiler-nix-name = "ghc925";
            shell.tools = {
              hlint = {};
              ormolu = {};
              haskell-language-server = {};
            };
            shell.buildInputs = [
              (pkgs.writeScriptBin "haskell-language-server-wrapper" ''
              #!${pkgs.stdenv.shell}
              exec haskell-language-server "$@"
            '')
            ];
          };
        })
      ];
      pkgs = import nixpkgs {
        inherit system overlays;
        inherit (haskellNix) config;
      };
      flake = pkgs.ppl.flake {};
    in
      flake // { packages.default = flake.packages."ppl:lib:ppl";});
}