blob: 4e1023e0e28a4542bc55f038d581c9688b86d4a1 (
plain) (
blame)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
{
description = "Personal XMonad configuration.";
inputs = {
nixpkgs = {
type = "github";
owner = "NixOS";
repo = "nixpkgs";
ref = "nixpkgs-unstable";
};
flake-utils = {
type = "github";
owner = "numtide";
repo = "flake-utils";
ref = "master";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-compat = {
type = "github";
owner = "edolstra";
repo = "flake-compat";
ref = "master";
flake = false;
};
pre-commit-hooks = {
type = "github";
owner = "cachix";
repo = "pre-commit-hooks.nix";
ref = "master";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
};
};
outputs = inputs:
with inputs;
let name = "xmonad-ng";
in flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
let
pkgs = nixpkgs.legacyPackages.${system};
project = returnShellEnv:
pkgs.haskellPackages.developPackage {
inherit name returnShellEnv;
root = ./.;
overrides = self: _:
with pkgs.haskell.lib;
let
mkPackage = packageName:
dontCheck (self.callHackage packageName "0.17.0" { });
in {
xmonad = mkPackage "xmonad";
xmonad-contrib = mkPackage "xmonad-contrib";
};
modifier = drv:
pkgs.haskell.lib.addBuildTools drv (with pkgs.haskellPackages; [
brittany
cabal-install
haskell-language-server
hlint
hpack
stack
]);
};
in {
defaultPackage = project false;
checks.preCommit = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
nix-linter.enable = true;
nixfmt.enable = true;
hpack.enable = true;
hlint.enable = true;
yamllint.enable = true;
brittany.enable = true;
shellcheck.enable = true;
shfmt = {
enable = true;
name = "shfmt";
entry = "${pkgs.shfmt}/bin/shfmt -s -w";
types = [ "shell" ];
};
prettier = {
enable = true;
types = [ ];
files = "\\.((yaml)|\\d)$";
};
};
};
shells = {
dev = project true;
commit = pkgs.mkShell {
inherit (self.checks.${system}.preCommit) shellHook;
};
};
devShell = self.shells.${system}.dev;
}) // {
overlay = _: _: { ${name} = self.defaultPackage; };
};
}
|