45 lines
1007 B
Bash
Executable File
45 lines
1007 B
Bash
Executable File
#!/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"
|