main
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"