python312Packages.fnllm: 0.0.11 -> 0.0.12 (#364582)
[NixPkgs.git] / pkgs / applications / editors / jupyter-kernels / coq / default.nix
blob134a6b2a6b63eaa3faae13173a5ef20eee1d02ed
2   lib,
3   stdenv,
4   callPackage,
5   runCommand,
6   makeWrapper,
7   coq,
8   imagemagick,
9   python3,
12 # Jupyter console:
13 # nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel coq-kernel.definition'
15 # Jupyter console with packages:
16 # nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel (coq-kernel.definitionWithPackages [coqPackages.bignums])'
18 # Jupyter notebook:
19 # nix run --impure --expr 'with import <nixpkgs> {}; jupyter.override { definitions.coq = coq-kernel.definition; }'
21 let
22   python = python3.withPackages (ps: [
23     ps.traitlets
24     ps.jupyter-core
25     ps.ipykernel
26     (callPackage ./kernel.nix { })
27   ]);
29   logos = runCommand "coq-logos" { buildInputs = [ imagemagick ]; } ''
30     mkdir -p $out
31     convert ${coq.src}/ide/coqide/coq.png -resize 32x32 $out/logo-32x32.png
32     convert ${coq.src}/ide/coqide/coq.png -resize 64x64 $out/logo-64x64.png
33   '';
37 rec {
38   launcher =
39     runCommand "coq-kernel-launcher"
40       {
41         nativeBuildInputs = [ makeWrapper ];
42       }
43       ''
44         mkdir -p $out/bin
46         makeWrapper ${python.interpreter} $out/bin/coq-kernel \
47           --add-flags "-m coq_jupyter" \
48           --suffix PATH : ${coq}/bin
49       '';
51   definition = definitionWithPackages [ ];
53   definitionWithPackages = packages: {
54     displayName = "Coq " + coq.version;
55     argv = [
56       "${launcher}/bin/coq-kernel"
57       "-f"
58       "{connection_file}"
59     ];
60     language = "coq";
61     logo32 = "${logos}/logo-32x32.png";
62     logo64 = "${logos}/logo-64x64.png";
63     env = {
64       COQPATH = lib.concatStringsSep ":" (
65         map (x: "${x}/lib/coq/${coq.coq-version}/user-contrib/") packages
66       );
67     };
68   };