blob: 0bd2ddb2a6a76b8fa71e273207db89fdc3ee7dbb (
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
45
|
{ pkgs ? import sources.nixpkgs { overlays = [ (import ./pkgs { }) ]; }
, sources ? import ./nix/sources.nix
}:
let
haskellPackages = pkgs.haskell.packages.ghc98;
jsHaskellPackages = pkgs.pkgsCross.ghcjs.haskell.packages.ghc98;
in
rec {
inherit (haskellPackages) acms;
inherit (jsHaskellPackages) frontend;
shell = haskellPackages.shellFor {
packages = _: [
haskellPackages.acms
haskellPackages.autotypes
haskellPackages.frontend
];
buildInputs = [
haskellPackages.astore
haskellPackages.autotypes
haskellPackages.cabal-install
haskellPackages.haskell-language-server
haskellPackages.ormolu
pkgs.pkg-config
pkgs.niv
(pkgs.writeScriptBin "reload" ''
set -efu
${haskellPackages.ghcid.bin}/bin/ghcid -c \
'${haskellPackages.cabal-install}/bin/cabal new-repl' \
-T ':run Main.main'
'')
(pkgs.writeScriptBin "acms" ''
set -efu
exec ${haskellPackages.cabal-install}/bin/cabal run acms -- "$@"
'')
(pkgs.writeScriptBin "format" ''
set -efu
git ls-files | grep .hs$ | while read -r fn; do
${haskellPackages.ormolu}/bin/ormolu -i "$fn" || :
done
'')
];
withHoogle = true;
withHaddock = true;
};
}
|