Commit 6497fecd authored by Vaibhav Sagar's avatar Vaibhav Sagar

release.nix: refactor

parent ea6c766d
...@@ -35,12 +35,9 @@ let ...@@ -35,12 +35,9 @@ let
ihaskellExe = nixpkgs.haskell.lib.justStaticExecutables haskellPackages.ihaskell; ihaskellExe = nixpkgs.haskell.lib.justStaticExecutables haskellPackages.ihaskell;
ihaskellEnv = haskellPackages.ghcWithPackages packages; ihaskellEnv = haskellPackages.ghcWithPackages packages;
jupyterlab = nixpkgs.python3.withPackages (ps: [ ps.jupyterlab ] ++ pythonPackages ps); jupyterlab = nixpkgs.python3.withPackages (ps: [ ps.jupyterlab ] ++ pythonPackages ps);
ihaskellGhcLibFunc = exe: env: nixpkgs.writeShellScriptBin "ihaskell" '' ihaskellGhcLibFunc = exe: env: nixpkgs.writeShellScriptBin "ihaskell" ''
${exe}/bin/ihaskell -l $(${env}/bin/ghc --print-libdir) "$@" ${exe}/bin/ihaskell -l $(${env}/bin/ghc --print-libdir) "$@"
''; '';
ihaskellGhcLib = ihaskellGhcLibFunc ihaskellExe ihaskellEnv;
ihaskellKernelFileFunc = ihaskellGhcLib: rtsopts: { ihaskellKernelFileFunc = ihaskellGhcLib: rtsopts: {
display_name = "Haskell"; display_name = "Haskell";
argv = [ argv = [
...@@ -53,27 +50,20 @@ let ...@@ -53,27 +50,20 @@ let
]; ];
language = "haskell"; language = "haskell";
}; };
ihaskellKernelFile = ihaskellKernelFileFunc ihaskellGhcLib rtsopts;
ihaskellKernelSpecFunc = ihaskellKernelFile: nixpkgs.runCommand "ihaskell-kernel" {} '' ihaskellKernelSpecFunc = ihaskellKernelFile: nixpkgs.runCommand "ihaskell-kernel" {} ''
export kerneldir=$out/kernels/haskell export kerneldir=$out/kernels/haskell
mkdir -p $kerneldir mkdir -p $kerneldir
cp ${./html}/* $kerneldir cp ${./html}/* $kerneldir
echo '${builtins.toJSON ihaskellKernelFile}' > $kerneldir/kernel.json echo '${builtins.toJSON ihaskellKernelFile}' > $kerneldir/kernel.json
''; '';
ihaskellKernelSpec = ihaskellKernelSpecFunc ihaskellKernelFile;
ihaskellLabextension = nixpkgs.runCommand "ihaskell-labextension" {} '' ihaskellLabextension = nixpkgs.runCommand "ihaskell-labextension" {} ''
mkdir -p $out/labextensions/ mkdir -p $out/labextensions/
ln -s ${./jupyterlab-ihaskell/labextension} $out/labextensions/jupyterlab-ihaskell ln -s ${./jupyterlab-ihaskell/labextension} $out/labextensions/jupyterlab-ihaskell
''; '';
ihaskellDataDirFunc = ihaskellKernelSpec: ihaskellLabextension: nixpkgs.buildEnv { ihaskellDataDirFunc = ihaskellKernelSpec: ihaskellLabextension: nixpkgs.buildEnv {
name = "ihaskell-data-dir"; name = "ihaskell-data-dir";
paths = [ ihaskellKernelSpec ihaskellLabextension ]; paths = [ ihaskellKernelSpec ihaskellLabextension ];
}; };
ihaskellDataDir = ihaskellDataDirFunc ihaskellKernelSpec ihaskellLabextension;
ihaskellBuildEnvFunc = { ihaskellEnv, jupyterlab, systemPackages, ihaskellDataDir }: nixpkgs.buildEnv { ihaskellBuildEnvFunc = { ihaskellEnv, jupyterlab, systemPackages, ihaskellDataDir }: nixpkgs.buildEnv {
name = "ihaskell-with-packages"; name = "ihaskell-with-packages";
buildInputs = [ nixpkgs.makeWrapper ]; buildInputs = [ nixpkgs.makeWrapper ];
...@@ -87,7 +77,6 @@ let ...@@ -87,7 +77,6 @@ let
fi fi
done done
''; '';
passthru = { passthru = {
inherit haskellPackages; inherit haskellPackages;
inherit ihaskellExe; inherit ihaskellExe;
...@@ -101,9 +90,11 @@ let ...@@ -101,9 +90,11 @@ let
inherit ihaskellBuildEnvFunc; inherit ihaskellBuildEnvFunc;
}; };
}; };
in ihaskellBuildEnvFunc {
ihaskellBuildEnv = ihaskellBuildEnvFunc { inherit ihaskellEnv jupyterlab systemPackages;
inherit ihaskellEnv jupyterlab ihaskellDataDir systemPackages; ihaskellDataDir = let
}; ihaskellGhcLib = ihaskellGhcLibFunc ihaskellExe ihaskellEnv;
ihaskellKernelFile = ihaskellKernelFileFunc ihaskellGhcLib rtsopts;
in ihaskellBuildEnv ihaskellKernelSpec = ihaskellKernelSpecFunc ihaskellKernelFile;
in ihaskellDataDirFunc ihaskellKernelSpec ihaskellLabextension;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment