#!/bin/sh # Verify the scrcpy server asset against its tracked SHA-256 sidecar. set -eu ROOT="$(cd "$(dirname "$0")/.." && pwd)" ASSETS="$ROOT/app/src/main/assets" JAR="$ASSETS/scrcpy-server.jar" SUM="$ASSETS/scrcpy-server.sha256" VERSION="$ASSETS/scrcpy-server.version" for file in "$JAR" "$SUM" "$VERSION"; do if [ ! -s "$file" ]; then echo "check-server: $file is missing or empty" >&2 exit 1 fi done expected=$(cat "$SUM") case "$expected" in *[!0-9a-f]*|'') echo "check-server: invalid SHA-256 in $SUM" >&2 exit 1 ;; esac if [ "${#expected}" -ne 64 ]; then echo "check-server: invalid SHA-256 length in $SUM" >&2 exit 1 fi actual=$(sha256sum "$JAR" | awk '{ print $1 }') if [ "$actual" != "$expected" ]; then echo "check-server: scrcpy-server.jar checksum mismatch" >&2 echo " want: $expected" >&2 echo " got: $actual" >&2 exit 1 fi if ! awk 'BEGIN { ok = 0 } /^[0-9]+([.][0-9]+)*$/ { if (NR == 1) ok = 1; next } { ok = 0 } END { exit !(ok && NR == 1) }' "$VERSION"; then echo "check-server: invalid version in $VERSION" >&2 exit 1 fi version=$(cat "$VERSION") echo "check-server: ok ($version)"