From 63eabff2a952c413a33e1ef5a4a6554a73ee6181 Mon Sep 17 00:00:00 2001 From: Khalid Zubair Date: Tue, 2 Feb 2016 12:00:14 -0800 Subject: envsetup: dopush: fix error when device is not connected $(adb get-state) was unquoted and returns an empty string when no device is connected causing the if and until statements to be malformed. Fix quoting and refactor the test to a separate function. Change-Id: I2cfa0a7b2033e5a379cab2cae64ed57f5495dbed --- envsetup.sh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'envsetup.sh') diff --git a/envsetup.sh b/envsetup.sh index 38f9c6c..6bd6c61 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -2191,6 +2191,19 @@ function repodiff() { 'echo "$REPO_PATH ($REPO_REMOTE)"; git diff ${diffopts} 2>/dev/null ;' } +# Return success if adb is up and not in recovery +function _adb_connected { + { + if [[ "$(adb get-state)" == device && + "$(adb shell test -e /sbin/recovery; echo $?)" == 0 ]] + then + return 0 + fi + } 2>/dev/null + + return 1 +}; + # Credit for color strip sed: http://goo.gl/BoIcm function dopush() { @@ -2198,10 +2211,10 @@ function dopush() shift adb start-server # Prevent unexpected starting server message from adb get-state in the next line - if [ $(adb get-state) != device -a $(adb shell test -e /sbin/recovery 2> /dev/null; echo $?) != 0 ] ; then + if ! _adb_connected; then echo "No device is online. Waiting for one..." echo "Please connect USB and/or enable USB debugging" - until [ $(adb get-state) = device -o $(adb shell test -e /sbin/recovery 2> /dev/null; echo $?) = 0 ];do + until _adb_connected; do sleep 1 done echo "Device Found." -- cgit v1.1