nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 writeScriptBin,
5 makeWrapper,
6 buildEnv,
7 ghcWithPackages,
8 jupyter,
9 packages,
10}:
11let
12 ihaskellEnv = ghcWithPackages (
13 self:
14 [
15 self.ihaskell
16 self.ihaskell-blaze
17 self.ihaskell-diagrams
18 ]
19 ++ packages self
20 );
21 ihaskellSh = writeScriptBin "ihaskell-notebook" ''
22 #! ${stdenv.shell}
23 export GHC_PACKAGE_PATH="$(${ihaskellEnv}/bin/ghc --print-global-package-db):$GHC_PACKAGE_PATH"
24 export PATH="${
25 lib.makeBinPath [
26 ihaskellEnv
27 jupyter
28 ]
29 }''${PATH:+:}$PATH"
30 ${ihaskellEnv}/bin/ihaskell install -l $(${ihaskellEnv}/bin/ghc --print-libdir) && ${jupyter}/bin/jupyter notebook
31 '';
32in
33buildEnv {
34 name = "ihaskell-with-packages";
35 nativeBuildInputs = [ makeWrapper ];
36 paths = [
37 ihaskellEnv
38 jupyter
39 ];
40 postBuild = ''
41 ln -s ${ihaskellSh}/bin/ihaskell-notebook $out/bin/
42 for prg in $out/bin"/"*;do
43 if [[ -f $prg && -x $prg ]]; then
44 wrapProgram $prg --set PYTHONPATH "$(echo ${jupyter}/lib/*/site-packages)"
45 fi
46 done
47 '';
48}