mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-12 08:21:02 +02:00
bd181271d9
Co-authored-by: Cursor <cursoragent@cursor.com>
39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Verify pinned love-nx binaries against the manifest checksums.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
# shellcheck source=common.sh
|
|
. "$SCRIPT_DIR/common.sh"
|
|
|
|
LOVE_NX_TAG="11.5-nx1"
|
|
LOVE_NX_DIR="$ROOT/.bazinga/love-nx/$LOVE_NX_TAG"
|
|
MANIFEST="$ROOT/scripts/switch/love-nx-11.5-nx1.sha256"
|
|
|
|
read_manifest_hash() {
|
|
local name="$1"
|
|
local line hash
|
|
line="$(grep -E "^${name}[[:space:]]+" "$MANIFEST" | head -1 || true)"
|
|
[ -n "$line" ] || fail "manifest missing entry for $name"
|
|
hash="$(printf '%s' "$line" | awk '{print $2}')"
|
|
case "$hash" in
|
|
TBD_*|"") fail "manifest hash for $name is not filled in ($hash)" ;;
|
|
esac
|
|
printf '%s' "$hash"
|
|
}
|
|
|
|
verify_file() {
|
|
local name="$1"
|
|
local path="$LOVE_NX_DIR/$name"
|
|
local expected actual
|
|
expected="$(read_manifest_hash "$name")"
|
|
[ -f "$path" ] || fail_need_fetch "missing pinned $name at $path"
|
|
actual="$(sha256_file "$path")"
|
|
[ "$actual" = "$expected" ] \
|
|
|| fail "$name checksum mismatch (expected $expected, got $actual)"
|
|
}
|
|
|
|
verify_file love.nro
|
|
verify_file love.elf
|