diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix | 63 |
1 files changed, 49 insertions, 14 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix index d99649fd2a9b..c0d4567fe0b7 100644 --- a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix +++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix @@ -1,24 +1,59 @@ -{ lib, stdenv, fetchurl, jre, makeWrapper }: +{ lib, stdenv, callPackage, fetchFromGitHub, leiningen, openjdk11 +, graalvm11-ce, babashka }: -stdenv.mkDerivation rec { +let pname = "clojure-lsp"; - version = "2021.02.10-21.13.12"; + version = "2021.02.14-19.46.47"; + leiningen11 = leiningen.override ({ jdk = openjdk11; }); - src = fetchurl { - url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/${pname}.jar"; - sha256 = "sha256-kYetCpInY87l1NTaIhjzkNc2LQctMbSmcdQuI7zrFG4="; + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = version; + sha256 = "sha256-Zj7/8RcuxCy2xdd+5jeOb1GTsQsX0EVW32k32fA6uf4="; }; - dontUnpack = true; + repository = callPackage ./repository.nix { + inherit src pname version; + leiningen = leiningen11; + }; +in stdenv.mkDerivation rec { + inherit src pname version; + + postPatch = '' + # Hack to set maven cache in another directory since MAVEN_OPTS doesn't work + substituteInPlace project.clj \ + --replace ":main" ":local-repo \"${repository}\" :main" + ''; + + GRAALVM_HOME = graalvm11-ce; + + buildInputs = [ graalvm11-ce leiningen11 repository ]; + + buildPhase = with lib; '' + runHook preBuild + + export LEIN_HOME="$(mktemp -d)" + bash ./graalvm/native-unix-compile.sh - buildInputs = [ makeWrapper ]; + runHook postBuild + ''; installPhase = '' - install -Dm644 $src $out/share/java/${pname}.jar - makeWrapper ${jre}/bin/java $out/bin/${pname} \ - --add-flags "-Xmx2g" \ - --add-flags "-server" \ - --add-flags "-jar $out/share/java/${pname}.jar" + runHook preInstall + + install -Dm755 ./clojure-lsp $out/bin/clojure-lsp + + runHook postInstall + ''; + + doCheck = true; + checkPhase = '' + runHook preCheck + + ${babashka}/bin/bb ./integration-test/run-all.clj ./clojure-lsp + + runHook postCheck ''; meta = with lib; { @@ -26,6 +61,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/snoe/clojure-lsp"; license = licenses.mit; maintainers = [ maintainers.ericdallo ]; - platforms = jre.meta.platforms; + platforms = graalvm11-ce.meta.platforms; }; } |