My Nix Configuration
1#!/usr/bin/env nix-shell 2#!nix-shell -i bash -p gnugrep gnused nix jq 3# shellcheck shell=bash 4# COPIED FROM nixpkgs/pkgs/by-name/wi/windmill 5 6set -eu -o pipefail 7 8echo "librusty_v8: UPDATING" 9 10BGUTIL_LATEST_VERSION=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} --silent --fail --location "https://api.github.com/repos/jim60105/bgutil-ytdlp-pot-provider-rs/releases/latest" | jq --raw-output .tag_name) 11CARGO_LOCK=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} --silent --fail --location "https://github.com/jim60105/bgutil-ytdlp-pot-provider-rs/raw/$BGUTIL_LATEST_VERSION/Cargo.lock") 12 13PACKAGE_DIR=$(dirname "$(readlink --canonicalize-existing "${BASH_SOURCE[0]}")") 14OUTPUT_FILE="$PACKAGE_DIR/librusty_v8.nix" 15NEW_VERSION=$(echo "$CARGO_LOCK" | grep --after-context 5 'name = "v8"' | grep 'version =' | sed -E 's/version = "//;s/"//') 16 17CURRENT_VERSION="" 18if [ -f "$OUTPUT_FILE" ]; then 19 CURRENT_VERSION="$(grep 'version =' "$OUTPUT_FILE" | sed -E 's/version = "//;s/"//')" 20fi 21 22if [ "$CURRENT_VERSION" == "$NEW_VERSION" ]; then 23 echo "No update needed, $CURRENT_VERSION is already latest" 24 exit 0 25fi 26 27x86Hash="$(nix-prefetch-url --type sha256 https://github.com/denoland/rusty_v8/releases/download/v"$NEW_V")" 28TEMP_FILE="$OUTPUT_FILE.tmp" 29cat >"$TEMP_FILE" <<EOF 30# COPIED FROM nixpkgs/pkgs/by-name/wi/windmill 31# auto-generated file -- DO NOT EDIT! 32{ fetchLibrustyV8 }: 33 34fetchLibrustyV8 { 35 version = "$NEW_VERSION"; 36 shas = { 37 # NOTE; Follows supported platforms of package (see meta.platforms attribute)! 38 x86_64-linux = "$(nix hash convert --hash-algo sha256 --from nix32 "$x86Hash")"; 39 }; 40} 41EOF 42 43mv "$TEMP_FILE" "$OUTPUT_FILE" 44 45echo "librusty_v8: UPDATE DONE"