#!/bin/bash
set -euo pipefail
if [ "$#" -ne 1 ]; then
  echo "Usage: bash run-parser-audit.sh /absolute/path/DeviceSDK-80.1.10.12.20260129.aar" >&2
  exit 2
fi
SDK_AAR="$1"
SDK_TEST_ROOT="$(cd "$(dirname "$0")" && pwd)"
mkdir -p /tmp/scan-interruption-audit-20260909/sdk
SDK_TEST_WORK="$(mktemp -d /tmp/scan-interruption-audit-20260909/sdk/run.XXXXXX)"
python3 - "$SDK_AAR" "$SDK_TEST_WORK" <<'PYSCRIPT'
import hashlib,sys,zipfile
from pathlib import Path
p=Path(sys.argv[1]);o=Path(sys.argv[2]);raw=p.read_bytes()
print('AAR SHA256:',hashlib.sha256(raw).hexdigest())
with zipfile.ZipFile(p) as z:(o/'classes.jar').write_bytes(z.read('classes.jar'))
PYSCRIPT
python3 - "$SDK_TEST_ROOT" "$SDK_TEST_WORK" <<'PYSCRIPT'
import subprocess,sys
from pathlib import Path
root=Path(sys.argv[1]);work=Path(sys.argv[2]);out=work/'out';out.mkdir()
sources=[str(p) for p in sorted((root/'harness').rglob('*.java'))]
subprocess.run(['javac','-cp',str(work/'classes.jar'),'-d',str(out),*sources],check=True)
result=subprocess.run(['java','-cp',str(out)+':'+str(work/'classes.jar'),'ParserAudit'],text=True,capture_output=True)
(work/'results.txt').write_text(result.stdout+result.stderr)
print(result.stdout+result.stderr,end='')
print('Receipt directory:',work)
raise SystemExit(result.returncode)
PYSCRIPT
