summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2022-04-06 11:16:40 +0200
committerRobert Hensing <robert@roberthensing.nl>2022-04-11 17:25:10 +0200
commit0038244d60e1fa1da679f6b9e1046fde4325b49c (patch)
tree831017dd541ac266328a5e7dace4d422324c0158
parentab55499253468ea2be69d3760077073c17da9103 (diff)
downloadnixpkgs-0038244d60e1fa1da679f6b9e1046fde4325b49c.tar
nixpkgs-0038244d60e1fa1da679f6b9e1046fde4325b49c.tar.gz
nixpkgs-0038244d60e1fa1da679f6b9e1046fde4325b49c.tar.bz2
nixpkgs-0038244d60e1fa1da679f6b9e1046fde4325b49c.tar.lz
nixpkgs-0038244d60e1fa1da679f6b9e1046fde4325b49c.tar.xz
nixpkgs-0038244d60e1fa1da679f6b9e1046fde4325b49c.tar.zst
nixpkgs-0038244d60e1fa1da679f6b9e1046fde4325b49c.zip
cassandra: Make updateScript update individual version
-rw-r--r--pkgs/servers/nosql/cassandra/generic.nix3
-rw-r--r--pkgs/servers/nosql/cassandra/update-script.nix45
-rwxr-xr-xpkgs/servers/nosql/cassandra/update.sh42
3 files changed, 47 insertions, 43 deletions
diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix
index 41d33a497be..9d62279e74e 100644
--- a/pkgs/servers/nosql/cassandra/generic.nix
+++ b/pkgs/servers/nosql/cassandra/generic.nix
@@ -16,6 +16,7 @@
 , version
 , sha256
 , extraMeta ? { }
+, callPackage
 , ...
 }:
 
@@ -114,7 +115,7 @@ stdenv.mkDerivation rec {
           test;
       };
 
-    updateScript = ./update.sh;
+    updateScript = callPackage ./update-script.nix { inherit generation; };
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/nosql/cassandra/update-script.nix b/pkgs/servers/nosql/cassandra/update-script.nix
new file mode 100644
index 00000000000..fd79d1fb43b
--- /dev/null
+++ b/pkgs/servers/nosql/cassandra/update-script.nix
@@ -0,0 +1,45 @@
+{ git
+, lib
+, runtimeShell
+, writeScript
+, generation
+}:
+let
+  inherit (lib) makeBinPath;
+  filename = lib.strings.replaceStrings [ "_" ] [ "." ] generation + ".nix";
+  regex = lib.strings.replaceStrings [ "_" ] [ "[.]" ] generation;
+in
+writeScript "update-cassandra_${generation}" ''
+  #!${runtimeShell}
+  set -eux -o pipefail
+  test -d pkgs -a -d nixos -a -d lib || {
+    echo >&2 "$0 expects to be run in a nixpkgs checkout"
+    exit 1
+  }
+  cd pkgs/servers/nosql/cassandra
+  PATH="${makeBinPath [git]}:$PATH"
+
+  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 '^${regex}' <$tmp/versions | head -n 1)"
+  hash="$(nix-prefetch-url "mirror://apache/cassandra/$version/apache-cassandra-$version-bin.tar.gz")"
+  cat >${filename} <<EOF
+  # GENERATED BY update.sh
+  { callPackage, ... } @ args:
+  callPackage ./generic.nix (args // {
+    version = "$version";
+    sha256 = "$hash";
+    generation = "${generation}";
+  })
+  EOF
+''
diff --git a/pkgs/servers/nosql/cassandra/update.sh b/pkgs/servers/nosql/cassandra/update.sh
deleted file mode 100755
index e4953605117..00000000000
--- a/pkgs/servers/nosql/cassandra/update.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/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