diff options
Diffstat (limited to 'scripts/check-server')
| -rwxr-xr-x | scripts/check-server | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/check-server b/scripts/check-server new file mode 100755 index 0000000..9a895a1 --- /dev/null +++ b/scripts/check-server @@ -0,0 +1,39 @@ +#!/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=$(awk 'NR == 1 { print $1 }' "$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 + +echo "check-server: ok ($(cat "$VERSION"))" |