rio: 0.0.36 -> 0.0.37
[NixPkgs.git] / pkgs / applications / editors / jupyter-kernels / coq / default.nix
blob9a2c12152d976f0ff983411144cf24bb566c80a2
1 { lib
2 , stdenv
3 , callPackage
4 , runCommand
5 , makeWrapper
6 , coq
7 , imagemagick
8 , python3
9 }:
11 # Jupyter console:
12 # nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel coq-kernel.definition'
14 # Jupyter console with packages:
15 # nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel (coq-kernel.definitionWithPackages [coqPackages.bignums])'
17 # Jupyter notebook:
18 # nix run --impure --expr 'with import <nixpkgs> {}; jupyter.override { definitions.coq = coq-kernel.definition; }'
20 let
21   python = python3.withPackages (ps: [ ps.traitlets ps.jupyter-core ps.ipykernel (callPackage ./kernel.nix {}) ]);
23   logos = runCommand "coq-logos" { buildInputs = [ imagemagick ]; } ''
24     mkdir -p $out
25     convert ${coq.src}/ide/coqide/coq.png -resize 32x32 $out/logo-32x32.png
26     convert ${coq.src}/ide/coqide/coq.png -resize 64x64 $out/logo-64x64.png
27   '';
31 rec {
32   launcher = runCommand "coq-kernel-launcher" {
33     nativeBuildInputs = [ makeWrapper ];
34   } ''
35     mkdir -p $out/bin
37     makeWrapper ${python.interpreter} $out/bin/coq-kernel \
38       --add-flags "-m coq_jupyter" \
39       --suffix PATH : ${coq}/bin
40   '';
42   definition = definitionWithPackages [];
44   definitionWithPackages = packages: {
45     displayName = "Coq " + coq.version;
46     argv = [
47       "${launcher}/bin/coq-kernel"
48       "-f"
49       "{connection_file}"
50     ];
51     language = "coq";
52     logo32 = "${logos}/logo-32x32.png";
53     logo64 = "${logos}/logo-64x64.png";
54     env = {
55       COQPATH = lib.concatStringsSep ":" (map (x: "${x}/lib/coq/${coq.coq-version}/user-contrib/") packages);
56     };
57   };