You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1007 B
44 lines
1007 B
#!/bin/bash |
|
set -eo pipefail |
|
cd "$(dirname "$0")" |
|
export ANDROID_HOME="${ANDROID_HOME:-/home/user/android}" |
|
APK=app/build/outputs/apk/debug/app-debug.apk |
|
|
|
echo "Building..." |
|
TMP=$(mktemp) |
|
./gradlew clean > /dev/null 2>&1 |
|
if ! ./gradlew assembleDebug > "$TMP" 2>&1; then |
|
cat "$TMP" |
|
rm -f "$TMP" |
|
exit 1 |
|
fi |
|
rm -f "$TMP" |
|
echo "Build OK" |
|
|
|
[ "$1" = "noinstall" ] && exit 0 |
|
|
|
if [ -n "$1" ]; then |
|
DEVICES=("$1") |
|
else |
|
mapfile -t DEVICES < <(adb devices | awk 'NR>1 && $2=="device"{print $1}') |
|
fi |
|
|
|
if [ ${#DEVICES[@]} -eq 0 ]; then |
|
echo "No devices connected" >&2 |
|
exit 1 |
|
fi |
|
|
|
echo "Devices (${#DEVICES[@]}):" |
|
i=1 |
|
for d in "${DEVICES[@]}"; do |
|
name=$(adb -s "$d" shell getprop ro.product.model 2>/dev/null | tr -d '\r') |
|
[ -z "$name" ] && name=$(adb -s "$d" shell getprop ro.product.marketname 2>/dev/null | tr -d '\r') |
|
echo " $i) $d $name" |
|
i=$((i+1)) |
|
done |
|
|
|
for d in "${DEVICES[@]}"; do |
|
echo "Installing on $d..." |
|
adb -s "$d" install -r "$APK" |
|
done |
|
echo "Install OK"
|
|
|