aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
diff options
context:
space:
mode:
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.nix63
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;
};
}