@@ -1,19 +1,19 @@
1−{ lib, stdenv, graalvm11-ce, babashka, fetchurl, fetchFromGitHub, clojure }:
1+{ lib, stdenv, graalvm11-ce, babashka, fetchurl, fetchFromGitHub, clojure, writeScript }:
22
33stdenv.mkDerivation rec {
44 pname = "clojure-lsp";
5− version = "2021.09.04-17.11.44";
5+ version = "2021.09.13-22.25.35";
66
77 src = fetchFromGitHub {
88 owner = pname;
99 repo = pname;
1010 rev = version;
11− sha256 = "1i12vxg3yb1051q7j6yqlsdy4lc4xl7n4lqssp8w634fpx1p0rgv";
11+ sha256 = "0ypn0m81lbhx45y0ajpgk7id9g47l1gnihvqdjxw5m1j2hdwjdzr";
1212 };
1313
1414 jar = fetchurl {
1515 url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/clojure-lsp.jar";
16− sha256 = "0ahrlqzyz3mgfx8w9w49172pb3dipq0hwwzk2yasqzcp1fi6jm80";
16+ sha256 = "e93e334a4ada04a28e0b148b8364b9433b8d83f6417249d7bded7cc86d1fe081";
1717 };
1818
1919 GRAALVM_HOME = graalvm11-ce;
@@ -49,6 +49,27 @@ stdenv.mkDerivation rec {
4949 runHook postCheck
5050 '';
5151
52+ passthru.updateScript = writeScript "update-clojure-lsp" ''
53+ #!/usr/bin/env nix-shell
54+ #!nix-shell -i bash -p curl common-updater-scripts gnused jq nix
55+
56+ set -eu -o pipefail
57+
58+ latest_version=$(curl -s https://api.github.com/repos/clojure-lsp/clojure-lsp/releases/latest | jq --raw-output .tag_name)
59+
60+ old_jar_hash=$(nix-instantiate --eval --strict -A "clojure-lsp.jar.drvAttrs.outputHash" | tr -d '"' | sed -re 's|[+]|\\&|g')
61+
62+ curl -o clojure-lsp.jar -sL https://github.com/clojure-lsp/clojure-lsp/releases/download/$latest_version/clojure-lsp.jar
63+ new_jar_hash=$(nix-hash --flat --type sha256 clojure-lsp.jar | sed -re 's|[+]|\\&|g')
64+
65+ rm -f clojure-lsp.jar
66+
67+ nixFile=$(nix-instantiate --eval --strict -A "clojure-lsp.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')
68+
69+ sed -i "$nixFile" -re "s|\"$old_jar_hash\"|\"$new_jar_hash\"|"
70+ update-source-version clojure-lsp "$latest_version"
71+ '';
72+
5273 meta = with lib; {
5374 description = "Language Server Protocol (LSP) for Clojure";
5475 homepage = "https://github.com/clojure-lsp/clojure-lsp";