diff --git a/pkgs/by-name/ra/radicle-httpd/package.nix b/pkgs/by-name/ra/radicle-httpd/package.nix index b6ca2feba0b1..0f816353176d 100644 --- a/pkgs/by-name/ra/radicle-httpd/package.nix +++ b/pkgs/by-name/ra/radicle-httpd/package.nix @@ -66,6 +66,8 @@ rustPlatform.buildRustPackage (finalAttrs: { versionCheckProgramArg = "--version"; doInstallCheck = true; + passthru.updateScript = ./update.sh; + meta = { description = "Radicle JSON HTTP API Daemon"; longDescription = '' diff --git a/pkgs/by-name/ra/radicle-httpd/update.sh b/pkgs/by-name/ra/radicle-httpd/update.sh new file mode 100755 index 000000000000..a4a805f1d7c1 --- /dev/null +++ b/pkgs/by-name/ra/radicle-httpd/update.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p coreutils gnused gitMinimal nix-update + +set -euo pipefail + +dirname="$(dirname "${BASH_SOURCE[0]}")" + +url=$(nix-instantiate --eval --raw -A radicle-httpd.src.url) +old_node=$(nix-instantiate --eval --raw -A radicle-httpd.src.node) + +ref=$(git ls-remote "$url" 'refs/namespaces/*/refs/tags/v0*' \ + | cut -f2 | grep -Ev '\^\{\}$' | sort -t/ -k6rV | head -1) +[[ "$ref" =~ ^refs/namespaces/([^/]+)/refs/tags/v([^/]+)$ ]] +new_node="${BASH_REMATCH[1]}" +version="${BASH_REMATCH[2]}" + +sed -i "s/${old_node}/${new_node}/g" "${dirname}/package.nix" +nix-update --version="$version" radicle-httpd +nix-update --version=skip radicle-explorer