diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/jupyter-kernels/coq/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/editors/jupyter-kernels/coq/default.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/jupyter-kernels/coq/default.nix b/nixpkgs/pkgs/applications/editors/jupyter-kernels/coq/default.nix new file mode 100644 index 000000000000..545c4e8ec4e8 --- /dev/null +++ b/nixpkgs/pkgs/applications/editors/jupyter-kernels/coq/default.nix @@ -0,0 +1,58 @@ +{ lib +, stdenv +, callPackage +, runCommand +, makeWrapper +, coq +, imagemagick +, python3 +}: + +# Jupyter console: +# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel coq-kernel.definition' + +# Jupyter console with packages: +# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel (coq-kernel.definitionWithPackages [coqPackages.bignums])' + +# Jupyter notebook: +# nix run --impure --expr 'with import <nixpkgs> {}; jupyter.override { definitions.coq = coq-kernel.definition; }' + +let + python = python3.withPackages (ps: [ ps.traitlets ps.jupyter_core ps.ipykernel (callPackage ./kernel.nix {}) ]); + + logos = runCommand "coq-logos" { buildInputs = [ imagemagick ]; } '' + mkdir -p $out + convert ${coq.src}/ide/coqide/coq.png -resize 32x32 $out/logo-32x32.png + convert ${coq.src}/ide/coqide/coq.png -resize 64x64 $out/logo-64x64.png + ''; + +in + +rec { + launcher = runCommand "coq-kernel-launcher" { + nativeBuildInputs = [ makeWrapper ]; + } '' + mkdir -p $out/bin + + makeWrapper ${python.interpreter} $out/bin/coq-kernel \ + --add-flags "-m coq_jupyter" \ + --suffix PATH : ${coq}/bin + ''; + + definition = definitionWithPackages []; + + definitionWithPackages = packages: { + displayName = "Coq " + coq.version; + argv = [ + "${launcher}/bin/coq-kernel" + "-f" + "{connection_file}" + ]; + language = "coq"; + logo32 = "${logos}/logo-32x32.png"; + logo64 = "${logos}/logo-64x64.png"; + env = { + COQPATH = lib.concatStringsSep ":" (map (x: "${x}/lib/coq/${coq.coq-version}/user-contrib/") packages); + }; + }; +} |