#!/bin/sh
set -eu

engine_dir=$(CDPATH= cd -- "$(/usr/bin/dirname -- "$0")" && pwd -P)
platform="$(/usr/bin/uname -s):$(/usr/bin/uname -m)"

case "$platform" in
  Darwin:arm64)
    engine="$engine_dir/ags-gh-darwin-arm64"
    expected="566d5d3acc8ffcac8f9a8923536d2256edfe93f24ceacb721a040cdfa48e1b22"
    actual=$(/usr/bin/shasum -a 256 "$engine")
    ;;
  Linux:x86_64)
    engine="$engine_dir/ags-gh-linux-amd64"
    expected="62ec965798667c957733a64b2a7af5b3b7fb16176477876fe18cc59c17ca5bc0"
    actual=$(/usr/bin/sha256sum "$engine")
    ;;
  *)
    printf 'AGS GH engine unsupported on %s\n' "$platform" >&2
    exit 126
    ;;
esac

actual=${actual%% *}
if [ ! -x "$engine" ] || [ "$actual" != "$expected" ]; then
  printf 'AGS GH platform engine identity mismatch on %s\n' "$platform" >&2
  exit 126
fi

exec "$engine" "$@"
