-
Notifications
You must be signed in to change notification settings - Fork 14
/
flake.nix
73 lines (65 loc) · 1.54 KB
/
flake.nix
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
{
description = "text-display";
inputs = {
# Nix Inputs
nixpkgs.url = github:nixos/nixpkgs/nixpkgs-unstable;
flake-utils.url = github:numtide/flake-utils;
};
outputs = {
self,
nixpkgs,
flake-utils,
}: let
utils = flake-utils.lib;
in
utils.eachDefaultSystem (system: let
compilerVersion = "ghc944";
pkgs = nixpkgs.legacyPackages.${system};
hsPkgs = pkgs.haskell.packages.${compilerVersion}.override {
overrides = hfinal: hprev: {
# Internal Packages
book = hfinal.callCabal2nix "book" ./. {};
};
};
in {
# nix develop
devShell = hsPkgs.shellFor {
name = "text-display";
shellHook = ''
export LOCALE_ARCHIVE="${pkgs.glibcLocales}/lib/locale/locale-archive"
export LC_ALL=C.UTF-8
'';
packages = p: [
p.book
];
buildInputs = with pkgs;
[
# Haskell Deps
cabal-install
hlint
haskellPackages.apply-refact
haskellPackages.fourmolu_0_12_0_0
haskellPackages.cabal-fmt
hsPkgs.haskell-language-server
# DB Deps
gmp
zlib
glibcLocales
# Extra
parallel
git
gnumake
];
};
# nix build
packages = {
book = hsPkgs.book;
};
# nix run
apps = {
book = utils.mkApp {
drv = self.packages.${system}.book;
};
};
});
}