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
45
46
47
48
49
50
51
{
description = "polysemy-methodology";
inputs = {
flake-utils = {
url = "github:numtide/flake-utils";
};
horizon-platform = {
url = "git+https://gitlab.homotopic.tech/horizon/horizon-platform";
};
lint-utils = {
url = "git+https://gitlab.homotopic.tech/nix/lint-utils";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
};
outputs =
inputs@{ self
, flake-utils
, horizon-platform
, lint-utils
, nixpkgs
, ...
}:
flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
let
pkgs = import nixpkgs { inherit system; };
hsPkgs = pkgs.haskell.packages.ghc942.override {
overrides = hfinal: hprev:
horizon-platform.overrides.x86_64-linux.ghc942 hfinal hprev //
{
polysemy-methodology = hprev.callCabal2nix "polysemy-methodology" ./. { };
};
};
in
{
devShells.default = hsPkgs.polysemy-methodology.env.overrideAttrs (attrs: {
buildInputs = attrs.buildInputs ++ [
hsPkgs.cabal-install
pkgs.nixpkgs-fmt
];
});
packages.default = hsPkgs.polysemy-methodology;
checks =
{
hlint = lint-utils.outputs.linters.${system}.hlint self;
hpack = lint-utils.outputs.linters.${system}.hpack self;
nixpkgs-fmt = lint-utils.outputs.linters.${system}.nixpkgs-fmt self;
stylish-haskell = lint-utils.outputs.linters.${system}.stylish-haskell self;
};
});
}