diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix b/nixpkgs/pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix new file mode 100644 index 000000000000..c71b14f17422 --- /dev/null +++ b/nixpkgs/pkgs/applications/editors/jupyter-kernels/clojupyter/default.nix @@ -0,0 +1,73 @@ +{ pkgs +, stdenv +, lib +, jre +, fetchFromGitHub +, writeShellScript +, runCommand +, imagemagick +}: + +# To test: +# $(nix-build --no-out-link -E 'with import <nixpkgs> {}; jupyter.override { definitions = { clojure = clojupyter.definition; }; }')/bin/jupyter-notebook + +let + cljdeps = import ./deps.nix { inherit pkgs; }; + classp = cljdeps.makeClasspaths {}; + + shellScript = writeShellScript "clojupyter" '' + ${jre}/bin/java -cp ${classp} clojupyter.kernel.core "$@" + ''; + + pname = "clojupyter"; + version = "0.3.2"; + + meta = with lib; { + description = "A Jupyter kernel for Clojure"; + homepage = "https://github.com/clojupyter/clojupyter"; + license = licenses.mit; + maintainers = with maintainers; [ thomasjm ]; + platforms = jre.meta.platforms; + }; + + sizedLogo = size: stdenv.mkDerivation { + name = "clojupyter-logo-${size}x${size}.png"; + + src = fetchFromGitHub { + owner = "clojupyter"; + repo = "clojupyter"; + rev = "0.3.2"; + sha256 = "1wphc7h74qlm9bcv5f95qhq1rq9gmcm5hvjblb01vffx996vr6jz"; + }; + + buildInputs = [ imagemagick ]; + + dontConfigure = true; + dontInstall = true; + + buildPhase = '' + convert ./resources/clojupyter/assets/logo-64x64.png -resize ${size}x${size} $out + ''; + + inherit meta; + }; + +in + +rec { + launcher = runCommand "clojupyter" { inherit pname version meta shellScript; } '' + mkdir -p $out/bin + ln -s $shellScript $out/bin/clojupyter + ''; + + definition = { + displayName = "Clojure"; + argv = [ + "${launcher}/bin/clojupyter" + "{connection_file}" + ]; + language = "clojure"; + logo32 = sizedLogo "32"; + logo64 = sizedLogo "64"; + }; +} |