From f86c15f484b5099fc5034d21745634658db8534d Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Mon, 8 Jan 2024 14:01:27 +0000 Subject: [PATCH] rar: add update script --- pkgs/tools/archivers/rar/update.sh | 52 ++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 pkgs/tools/archivers/rar/update.sh diff --git a/pkgs/tools/archivers/rar/update.sh b/pkgs/tools/archivers/rar/update.sh new file mode 100755 index 000000000000..8d5bb647d287 --- /dev/null +++ b/pkgs/tools/archivers/rar/update.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused jq + +set -euo pipefail + +DIRNAME=$(dirname "$0") +readonly DIRNAME +readonly NIXPKGS_ROOT="../../../.." +readonly NIX_FLAGS=(--extra-experimental-features 'nix-command flakes') + +updateHash() +{ + local -r version="${1//./}" + local -r arch="$2" + local -r os="$3" + local -r nix_arch="$4" + + url="https://www.rarlab.com/rar/rar$os-$arch-$version.tar.gz" + hash=$(nix store prefetch-file --json "$url" | jq -r .hash) + currentHash=$(cd "$DIRNAME" && nix "${NIX_FLAGS[@]}" eval --raw "$NIXPKGS_ROOT#legacyPackages.$nix_arch.rar.src.outputHash") + + sed -i "s|$currentHash|$hash|g" "$DIRNAME/default.nix" +} + +updateVersion() +{ + local -r version="$1" + sed -i "s|version = \"[0-9.]*\";|version = \"$version\";|g" "$DIRNAME/default.nix" +} + +# TODO: get latest version +readonly latestVersion="${1:-}" + +if [[ -z "$latestVersion" ]]; then + echo "usage: $0 " + exit 1 +fi + +currentVersion=$(cd "$DIRNAME" && nix "${NIX_FLAGS[@]}" eval --raw "$NIXPKGS_ROOT#legacyPackages.x86_64-linux.rar.version") +readonly currentVersion + +if [[ "$currentVersion" == "$latestVersion" ]]; then + echo "rar is up-to-date: ${currentVersion}" + exit 0 +fi + +updateHash "$latestVersion" x32 linux i686-linux +updateHash "$latestVersion" x64 linux x86_64-linux +updateHash "$latestVersion" arm macos aarch64-darwin +updateHash "$latestVersion" x64 macos x86_64-darwin + +updateVersion "$latestVersion"