mirror of
https://github.com/bspeice/M28_App
synced 2024-12-21 22:28:13 -05:00
0576552ec6
Contains initial PhoneGap code, and Django template system Template system is set up to render the templates out so PhoneGap can use them, rather than having to re-code everything by hand.
160 lines
4.5 KiB
Plaintext
Executable File
160 lines
4.5 KiB
Plaintext
Executable File
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
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"
|
|
else
|
|
echo "0"
|
|
fi
|
|
}
|
|
|
|
function emulate {
|
|
declare -a avd_list=($(android list avd | grep "Name:" | cut -f 2 -d ":" | xargs))
|
|
# we need to start adb-server
|
|
adb start-server 1>/dev/null
|
|
|
|
# Do not launch an emulator if there is already one running or if a device is attached
|
|
if [ $(check_devices) == 0 ] ; then
|
|
return
|
|
fi
|
|
|
|
local avd_id="1000" #FIXME: hopefully user does not have 1000 AVDs
|
|
# User has no AVDs
|
|
if [ ${#avd_list[@]} == 0 ]
|
|
then
|
|
echo "You don't have any Android Virtual Devices. Please create at least one AVD."
|
|
echo "android"
|
|
fi
|
|
# User has only one AVD
|
|
if [ ${#avd_list[@]} == 1 ]
|
|
then
|
|
emulator -cpu-delay 0 -no-boot-anim -cache /tmp/cache -avd ${avd_list[0]} 1> /dev/null 2>&1 &
|
|
# User has more than 1 AVD
|
|
elif [ ${#avd_list[@]} -gt 1 ]
|
|
then
|
|
while [ -z ${avd_list[$avd_id]} ]
|
|
do
|
|
echo "Choose from one of the following Android Virtual Devices [0 to $((${#avd_list[@]}-1))]:"
|
|
for(( i = 0 ; i < ${#avd_list[@]} ; i++ ))
|
|
do
|
|
echo "$i) ${avd_list[$i]}"
|
|
done
|
|
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
|
|
|
|
}
|
|
|
|
function clean {
|
|
ant clean
|
|
}
|
|
# has to be used independently and not in conjunction with other commands
|
|
function log {
|
|
adb logcat
|
|
}
|
|
|
|
function run {
|
|
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
|
|
}
|
|
|
|
function build {
|
|
ant debug
|
|
}
|
|
|
|
function release {
|
|
ant release
|
|
}
|
|
|
|
function wait_for_device {
|
|
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 {
|
|
local launch_str=$(java -jar "$PROJECT_PATH"/cordova/appinfo.jar "$PROJECT_PATH"/AndroidManifest.xml)
|
|
adb shell am start -n $launch_str
|
|
}
|
|
|
|
# TODO parse arguments
|
|
(cd "$PROJECT_PATH" && $1)
|