From 0038244d60e1fa1da679f6b9e1046fde4325b49c Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Wed, 6 Apr 2022 11:16:40 +0200 Subject: [PATCH] cassandra: Make updateScript update individual version --- pkgs/servers/nosql/cassandra/generic.nix | 3 +- .../servers/nosql/cassandra/update-script.nix | 45 +++++++++++++++++++ pkgs/servers/nosql/cassandra/update.sh | 42 ----------------- 3 files changed, 47 insertions(+), 43 deletions(-) create mode 100644 pkgs/servers/nosql/cassandra/update-script.nix delete mode 100755 pkgs/servers/nosql/cassandra/update.sh diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix index 41d33a497bef..9d62279e74e4 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 000000000000..fd79d1fb43b8 --- /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} <$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 <3.0.nix <