about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2022-02-23 15:31:16 +0100
committerRobert Hensing <robert@roberthensing.nl>2022-04-11 17:25:10 +0200
commitab55499253468ea2be69d3760077073c17da9103 (patch)
tree6d8a19cf5e4f21863bd6185189d7bee5fa04abd4
parentbc50e0ec126ef55b96d3d75b4ddd62c8492c2568 (diff)
cassandra: Add updateScript
-rw-r--r--pkgs/servers/nosql/cassandra/3.0.nix1
-rw-r--r--pkgs/servers/nosql/cassandra/3.11.nix1
-rw-r--r--pkgs/servers/nosql/cassandra/generic.nix4
-rwxr-xr-xpkgs/servers/nosql/cassandra/update.sh42
4 files changed, 45 insertions, 3 deletions
diff --git a/pkgs/servers/nosql/cassandra/3.0.nix b/pkgs/servers/nosql/cassandra/3.0.nix
index d9f5978f2649a..df484778740d4 100644
--- a/pkgs/servers/nosql/cassandra/3.0.nix
+++ b/pkgs/servers/nosql/cassandra/3.0.nix
@@ -1,5 +1,4 @@
 { callPackage, ... } @ args:
-
 callPackage ./generic.nix (args // {
   version = "3.0.26";
   sha256 = "09wim1w2yizcqpja62jk64fhaw3jgnrgrjlrm4kgmcc3g3bsmw6i";
diff --git a/pkgs/servers/nosql/cassandra/3.11.nix b/pkgs/servers/nosql/cassandra/3.11.nix
index fc839fa8c3560..838ece0e8a6ca 100644
--- a/pkgs/servers/nosql/cassandra/3.11.nix
+++ b/pkgs/servers/nosql/cassandra/3.11.nix
@@ -1,5 +1,4 @@
 { callPackage, ... } @ args:
-
 callPackage ./generic.nix (args // {
   version = "3.11.12";
   sha256 = "16j58l7r47qrfh8q7fm92y935ykgvnbj3qn984c42qda15x92hkw";
diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix
index ca11b838e3250..41d33a497bef9 100644
--- a/pkgs/servers/nosql/cassandra/generic.nix
+++ b/pkgs/servers/nosql/cassandra/generic.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     inherit sha256;
-    url = "mirror://apache/cassandra/${version}/apache-${pname}-${version}-bin.tar.gz";
+    url = "mirror://apache/cassandra/${version}/apache-cassandra-${version}-bin.tar.gz";
   };
 
   nativeBuildInputs = [ makeWrapper coreutils ];
@@ -113,6 +113,8 @@ stdenv.mkDerivation rec {
           assert test.testPackage.version == version;
           test;
       };
+
+    updateScript = ./update.sh;
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/nosql/cassandra/update.sh b/pkgs/servers/nosql/cassandra/update.sh
new file mode 100755
index 0000000000000..e49536051174d
--- /dev/null
+++ b/pkgs/servers/nosql/cassandra/update.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash
+#!nix-shell -p git
+
+cd "$(dirname "$0")"
+set -eux -o pipefail
+
+tmp="$(mktemp -d)"
+cleanup() {
+  rm -rf "$tmp"
+}
+trap cleanup EXIT
+
+# get numeric-only versions, sort them latest first
+git ls-remote --tags https://github.com/apache/cassandra \
+  | awk '{ if (match($0, /refs.tags.cassandra-([0-9.]*)$/, m)) print m[1] }' \
+  | sort -V \
+  | tac >$tmp/versions
+
+version="$(grep -E '3[.]11[.]' <$tmp/versions | head -n 1)"
+hash="$(nix-prefetch-url "mirror://apache/cassandra/${version}/apache-cassandra-${version}-bin.tar.gz")"
+cat >3.11.nix <<EOF
+# GENERATED BY update.sh
+{ callPackage, ... } @ args:
+callPackage ./generic.nix (args // {
+  version = "$version";
+  sha256 = "$hash";
+  generation = "3_11";
+})
+EOF
+
+version="$(grep -E '3[.]0[.]' <$tmp/versions | head -n 1)"
+hash="$(nix-prefetch-url "mirror://apache/cassandra/${version}/apache-cassandra-${version}-bin.tar.gz")"
+cat >3.0.nix <<EOF
+# GENERATED BY update.sh
+{ callPackage, ... } @ args:
+callPackage ./generic.nix (args // {
+  version = "$version";
+  sha256 = "$hash";
+  generation = "3_0";
+})
+EOF