diff options
Diffstat (limited to 'shell.nix')
-rw-r--r-- | shell.nix | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..294fea0 --- /dev/null +++ b/shell.nix | |||
@@ -0,0 +1,17 @@ | |||
1 | { pkgs ? (import <nixpkgs> {}) | ||
2 | , haskellPackages ? (import ./default.nix { inherit pkgs; }).haskellPackages | ||
3 | }: | ||
4 | |||
5 | let | ||
6 | ghc = (haskellPackages.ghcWithPackages (ps: (payload ++ depends ++ (with ps; [ hlint cabal2nix cabal-install ])))).override { ignoreCollisions = true; }; | ||
7 | payload = builtins.attrValues (import ./default.nix {}); | ||
8 | depends = builtins.concatLists (builtins.map (x: if builtins.hasAttr "nativeBuildInputs" x then x.nativeBuildInputs else []) (builtins.attrValues (import ./default.nix {}))); | ||
9 | in pkgs.stdenv.mkDerivation rec { | ||
10 | bareName = "sequence"; | ||
11 | name = "${bareName}-env"; | ||
12 | buildInputs = [ ghc ]; | ||
13 | shellHook = '' | ||
14 | eval $(egrep ^export ${ghc}/bin/ghc) | ||
15 | export PROMPT_INFO="${name}" | ||
16 | ''; | ||
17 | } | ||