#!/usr/bin/env bash # Build the Archipelago companion debug APK and stage it as the served download # at neode-ui/public/packages/archipelago-companion.apk (a plain APK, so a phone # can install it straight from the link — no unzip step). # # Run manually, or automatically via the pre-push hook (.githooks/pre-push). set -euo pipefail ROOT="$(git rev-parse --show-toplevel)" cd "$ROOT" JAVA="${JAVA_HOME:-/opt/homebrew/opt/openjdk@17}" SDK="${ANDROID_HOME:-$HOME/Library/Android/sdk}" if [ ! -x "$JAVA/bin/java" ] || [ ! -d "$SDK" ]; then echo "publish-companion-apk: JDK or Android SDK not found — skipping." >&2 echo " (set JAVA_HOME and ANDROID_HOME to build the companion APK)" >&2 exit 0 fi echo "publish-companion-apk: building debug APK…" >&2 ( cd Android && JAVA_HOME="$JAVA" ANDROID_HOME="$SDK" ./gradlew -q :app:assembleDebug ) APK="Android/app/build/outputs/apk/debug/app-debug.apk" DEST="neode-ui/public/packages/archipelago-companion.apk" OLD_ZIP="neode-ui/public/packages/archipelago-companion.apk.zip" mkdir -p "$(dirname "$DEST")" cp "$APK" "$DEST" # Drop the legacy zipped artifact so the served download is the raw APK only. if [ -f "$OLD_ZIP" ]; then git rm -q --ignore-unmatch "$OLD_ZIP" 2>/dev/null || rm -f "$OLD_ZIP" fi git add "$DEST" echo "publish-companion-apk: staged $DEST" >&2