update/navibeat
 1#!/usr/bin/env nix-shell
 2#!nix-shell -i bash -p curl -p jq -p nix
 3# shellcheck shell=bash
 4set -euo pipefail
 5
 6REPO_URL="https://github.com/alexmercerind2/harmonoid-releases"
 7
 8SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
 9PKG_FILE="$SCRIPT_DIR/default.nix"
10PKG_NAME="harmonoid"
11
12OLD_VERSION=$(sed -n 's/.*version = "\([^"]*\)";.*/\1/p' "$PKG_FILE" | head -1)
13NEW_VERSION=$(curl -fsSL "${REPO_URL}/releases.atom" | sed -n 's#.*releases/tag/v\([^"<]*\).*#\1#p' | head -1)
14
15if [ "$NEW_VERSION" = "$OLD_VERSION" ]; then
16	exit 0
17fi
18
19X86_64_HASH=$(nix store prefetch-file --json "${REPO_URL}/releases/download/v${NEW_VERSION}/harmonoid-linux-x86_64.tar.gz" | jq -r .hash)
20AARCH64_HASH=$(nix store prefetch-file --json "${REPO_URL}/releases/download/v${NEW_VERSION}/harmonoid-linux-aarch64.tar.gz" | jq -r .hash)
21
22sed -i "s/version = \"$OLD_VERSION\";/version = \"$NEW_VERSION\";/" "$PKG_FILE"
23
24awk -v x86="$X86_64_HASH" -v arm="$AARCH64_HASH" '
25  /harmonoid-linux-aarch64/ { print; getline; sub(/hash = "[^"]*"/, "hash = \"" arm "\""); print; next }
26  /harmonoid-linux-x86_64/ { print; getline; sub(/hash = "[^"]*"/, "hash = \"" x86 "\""); print; next }
27  { print }
28' "$PKG_FILE" >"$PKG_FILE.tmp" && mv "$PKG_FILE.tmp" "$PKG_FILE"
29
30echo "$PKG_NAME: $OLD_VERSION -> $NEW_VERSION"