You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ma...@apache.org on 2012/11/23 04:28:59 UTC
[6/11] android commit: adding install function
adding install function
Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/a6473cb8
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/a6473cb8
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/a6473cb8
Branch: refs/heads/master
Commit: a6473cb826ee269108d287ed74dce2a1d1b54100
Parents: 0084c6f
Author: Anis Kadri <an...@gmail.com>
Authored: Tue Nov 20 14:49:49 2012 -0800
Committer: Simon MacDonald <si...@gmail.com>
Committed: Thu Nov 22 22:23:51 2012 -0500
----------------------------------------------------------------------
bin/templates/cordova/cordova | 76 +++++++++++++++++++++++++++---------
1 files changed, 57 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/a6473cb8/bin/templates/cordova/cordova
----------------------------------------------------------------------
diff --git a/bin/templates/cordova/cordova b/bin/templates/cordova/cordova
index 561663b..759f590 100755
--- a/bin/templates/cordova/cordova
+++ b/bin/templates/cordova/cordova
@@ -17,11 +17,11 @@
#!/bin/bash
-set -e
PROJECT_PATH=$( cd "$( dirname "$0" )/.." && pwd )
function check_devices {
+# FIXME
local devices=`adb devices | awk '/List of devices attached/ { while(getline > 0) { print }}' | grep device`
if [ -z "$devices" ] ; then
echo "1"
@@ -37,7 +37,6 @@ function emulate {
# Do not launch an emulator if there is already one running or if a device is attached
if [ $(check_devices) == 0 ] ; then
- # echo "Device attached or emulator already running"
return
fi
@@ -62,8 +61,9 @@ function emulate {
do
echo "$i) ${avd_list[$i]}"
done
- echo -n "> "
- read avd_id
+ read -t 5 -p "> " avd_id
+ # default value if input timeout
+ if [ $avd_id -eq 1000 ] ; then avd_id=0 ; fi
done
emulator -cpu-delay 0 -no-boot-anim -cache /tmp/cache -avd ${avd_list[$avd_id]} 1> /dev/null 2>&1 &
fi
@@ -79,17 +79,41 @@ function log {
}
function run {
- if [ $(check_devices) == 0 ] ; then
- clean && emulate && install && launch
- else
- build
- echo "##################################################################"
- echo "# Plug in your device or launch an emulator with cordova/run #"
- echo "##################################################################"
- fi
+ clean && emulate && wait_for_device && install && launch
}
function install {
+
+ declare -a devices=($(adb devices | awk '/List of devices attached/ { while(getline > 0) { print }}' | grep device | cut -f 1))
+ local device_id="1000" #FIXME: hopefully user does not have 1000 AVDs
+
+ if [ ${#devices[@]} == 0 ]
+ then
+ # should not reach here. Emulator should launch or device should be attached
+ echo "Emulator not running or device not attached. Could not install debug package"
+ exit 70
+ fi
+
+ if [ ${#devices[@]} == 1 ]
+ then
+ export ANDROID_SERIAL=${devices[0]}
+ # User has more than 1 AVD
+ elif [ ${#devices[@]} -gt 1 ]
+ then
+ while [ -z ${devices[$device_id]} ]
+ do
+ echo "Choose from one of the following devices/emulators [0 to $((${#devices[@]}-1))]:"
+ for(( i = 0 ; i < ${#devices[@]} ; i++ ))
+ do
+ echo "$i) ${devices[$i]}"
+ done
+ read -t 5 -p "> " device_id
+ # default value if input timeout
+ if [ $device_id -eq 1000 ] ; then device_id=0 ; fi
+ done
+ export ANDROID_SERIAL=${devices[$device_id]}
+ fi
+
ant debug install
}
@@ -98,14 +122,28 @@ function build {
}
function wait_for_device {
- local i=0
- echo "Waiting for emulator..."
- while [ check_devices -eq 0 || timeout -lt 300 ]
- do
- sleep 1
- i=$[i+1]
- end
+ local i="0"
+ echo -n "Waiting for device..."
+ while [ $i -lt 300 ]
+ do
+ if [ $(check_devices) -eq 0 ]
+ then
+ break
+ else
+ sleep 1
+ i=$[i+1]
+ echo -n "."
+ fi
+ done
+ # Device timeout: emulator has not started in time or device not attached
+ if [ $i -eq 300 ]
+ then
+ echo "device timeout!"
+ exit 69
+ else
+ echo "connected!"
+ fi
}
function launch {