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/imputnet/helium-linux"
 7
 8SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
 9PKG_FILE="$SCRIPT_DIR/default.nix"
10PKG_NAME="helium"
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/\([^"<]*\).*#\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/${NEW_VERSION}/helium-${NEW_VERSION}-x86_64_linux.tar.xz" | jq -r .hash)
20AARCH64_HASH=$(nix store prefetch-file --json "${REPO_URL}/releases/download/${NEW_VERSION}/helium-${NEW_VERSION}-arm64_linux.tar.xz" | 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  /helium-\$\{version\}-arm64_linux/ { print; getline; sub(/hash = "[^"]*"/, "hash = \"" arm "\""); print; next }
26  /helium-\$\{version\}-x86_64_linux/ { 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"