BobStore/tools/wait-for-emulator
Daniel Martí 7bc130d81a wait-for-emulator: skip adb log messages
Otherwise, we'd interpret this as "booting", which is wrong:

     $ adb -e shell getprop init.svc.bootanim
    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    error: no devices found
2016-04-29 20:46:25 +01:00

44 lines
762 B
Bash
Executable File

#!/bin/bash
sec=0
timeout=360
err() {
echo "$@"
exit 1
}
explain() {
if [[ "$1" =~ "not found" ]]; then
printf "device not found"
elif [[ "$1" =~ "offline" ]]; then
printf "device offline"
elif [[ "$1" =~ "running" ]]; then
printf "booting"
else
printf "unknown: $1"
fi
}
while true; do
if [[ $sec -ge $timeout ]]; then
err "Timeout ($timeout seconds) reached - Failed to start emulator"
fi
out=$(adb -e shell getprop init.svc.bootanim 2>&1 | grep -v '^\*')
if [[ "$out" =~ "command not found" ]]; then
err "$out"
fi
if [[ "$out" =~ "stopped" ]]; then
break
fi
exp=$(explain "$out")
let "r = sec % 5"
if [[ $r -eq 0 ]]; then
echo "Waiting for emulator to start: $exp"
fi
sleep 1
let "sec++"
done
echo "Emulator is ready"