-
Notifications
You must be signed in to change notification settings - Fork 0
/
shell.nix
32 lines (28 loc) · 861 Bytes
/
shell.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
let
myNixPkgs = import <nixpkgs> {
overlays = [myNixPkgsOverlay];
};
myNixPkgsOverlay = (nixSelf: nixSuper: {
myHaskellPackages = nixSelf.haskellPackages.override (oldHaskellPkgs: {
overrides = nixSelf.lib.composeExtensions (oldHaskellPkgs.overrides or (_: _: {})) myHaskellPkgsOverlay;
});
});
myHaskellPkgsOverlay = (hSelf: hSuper: {
# "myproject" is the first part of the "myproject.cabal" project definition file
myProject = hSelf.callCabal2nix "wyag" ./. {};
});
myDevTools = with myNixPkgs; [
cabal-install
haskell-language-server
haskellPackages.ghcid
hlint
ormolu
];
myShellHook = ''
alias repl="cabal new-repl"
'';
in
myNixPkgs.myHaskellPackages.myProject.env.overrideAttrs (oldEnv: {
nativeBuildInputs = oldEnv.nativeBuildInputs ++ myDevTools;
shellHook = myShellHook;
})