diff options
Diffstat (limited to 'default.nix')
| -rw-r--r-- | default.nix | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..8647ec4 --- /dev/null +++ b/default.nix @@ -0,0 +1,57 @@ +{ + lib, + stdenv, + fetchzip, + openjdk, + gradle, + makeWrapper, + maven, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "kotlin-lsp"; + version = "262.2310.0"; + src = fetchzip { + url = "https://download-cdn.jetbrains.com/kotlin-lsp/${finalAttrs.version}/kotlin-lsp-${finalAttrs.version}-linux-x64.zip"; + hash = "sha256-Bf2qkFpNhQC/Mz563OapmCXeKN+dTrYyQbOcF6z6b48="; + stripRoot = false; + }; + + dontBuild = true; + + installPhase = '' + # copy files + mkdir -p $out/share/kotlin-lsp/{lib,native} + cp -r lib/* $out/share/kotlin-lsp/lib + cp -r native/* $out/share/kotlin-lsp/native + cp kotlin-lsp.sh $out/share/kotlin-lsp/kotlin-lsp + chmod +x $out/share/kotlin-lsp/kotlin-lsp + + # wrap openjdk + ln -sf ${openjdk}/lib/openjdk $out/share/kotlin-lsp/jre + + # wrap program + mkdir -p $out/bin + makeWrapper $out/share/kotlin-lsp/kotlin-lsp $out/bin/kotlin-lsp \ + --set JAVA_HOME ${openjdk} \ + --prefix PATH : ${lib.strings.makeBinPath [ openjdk maven ]} + ''; + + nativeBuildInputs = [ + gradle + makeWrapper + ]; + + buildInputs = [ + openjdk + gradle + ]; + + meta = { + description = "Kotlin language server"; + homepage = "https://github.com/Kotlin/kotlin-lsp"; + license = lib.licenses.asl20; + platforms = [ "x86_64-linux" ]; + mainProgram = "kotlin-lsp"; + }; +}) |