Skip to content

Commit

Permalink
adding install function
Browse files Browse the repository at this point in the history
  • Loading branch information
imhotep committed Nov 20, 2012
1 parent e1347e4 commit 3f3a0b9
Showing 1 changed file with 57 additions and 19 deletions.
76 changes: 57 additions & 19 deletions bin/templates/cordova/cordova
Expand Up @@ -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"
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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
}

Expand All @@ -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 {
Expand Down

0 comments on commit 3f3a0b9

Please sign in to comment.