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"