Files
crkl/scripts/wait-emulator.sh
T
ilia cbed90db21 Ship Circle 1.16.2: overlay assist, brand, and smoke tooling
VIP loop (circle → extract → Translate/Copy/Explain/Share/Vikunja),
lasso branding, ship docs, unit tests, and make smoke / launchd emu helpers.
2026-08-05 12:26:51 -04:00

35 lines
1022 B
Bash
Executable File

#!/usr/bin/env bash
# Wait until an Android emulator is fully booted (adb is source of truth).
# Usage: scripts/wait-emulator.sh [adb-path]
set -euo pipefail
ADB="${1:-adb}"
LOG="${CRKL_EMU_LOG:-/tmp/crkl-emulator.log}"
MAX_TRIES="${CRKL_EMU_WAIT_TRIES:-90}"
echo "Waiting for emulator (adb)..."
"$ADB" start-server >/dev/null 2>&1 || true
for ((i = 1; i <= MAX_TRIES; i++)); do
state="$("$ADB" devices 2>/dev/null | awk '/emulator-/{print $2; exit}')"
if [[ "$state" == "device" ]]; then
boot="$("$ADB" shell getprop sys.boot_completed 2>/dev/null | tr -d '\r' || true)"
if [[ "$boot" == "1" ]]; then
echo "✓ emulator booted"
exit 0
fi
elif [[ "$state" == "offline" ]]; then
"$ADB" kill-server >/dev/null 2>&1 || true
"$ADB" start-server >/dev/null 2>&1 || true
fi
if ((i % 10 == 0)); then
echo " still waiting… (${i}/${MAX_TRIES}) adb=${state:-none}"
fi
sleep 2
done
echo "Emulator did not boot in time — see $LOG"
tail -50 "$LOG" 2>/dev/null || true
exit 1