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 {