57 lines
1.6 KiB
Bash
Executable File
57 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Build + install on emulator or connected device
|
|
# Usage:
|
|
# ./deploy.sh → emulator
|
|
# ./deploy.sh wifi → phone via ADB WiFi (prompts for IP if not set)
|
|
# ./deploy.sh logs → stream logs only
|
|
set -e
|
|
|
|
export ANDROID_HOME=~/android-sdk
|
|
export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"
|
|
GRADLE=~/gradle/gradle-8.6/bin/gradle
|
|
APK=app/build/outputs/apk/debug/app-debug.apk
|
|
PKG=me.khodak.claudeusage
|
|
|
|
# -- connect to phone over WiFi if requested
|
|
if [[ "$1" == "wifi" ]]; then
|
|
PHONE_IP="${PHONE_IP:-$(cat .phone-ip 2>/dev/null)}"
|
|
if [[ -z "$PHONE_IP" ]]; then
|
|
read -rp "Phone IP address: " PHONE_IP
|
|
echo "$PHONE_IP" > .phone-ip
|
|
fi
|
|
adb connect "$PHONE_IP:5555" 2>&1 | head -3
|
|
fi
|
|
|
|
# -- logs only
|
|
if [[ "$1" == "logs" ]]; then
|
|
echo "Streaming logs (Ctrl-C to stop)..."
|
|
adb logcat -s UsageRepo:D ClaudeWidget:D UsageWorker:D AlarmReceiver:D | sed 's/.*\(D\|W\|E\) //'
|
|
exit 0
|
|
fi
|
|
|
|
# -- build
|
|
echo "Building..."
|
|
$GRADLE assembleDebug --no-daemon -q
|
|
echo "Build OK"
|
|
|
|
# -- pick target device
|
|
DEVICES=$(adb devices | awk '/device$/{print $1}')
|
|
if [[ -z "$DEVICES" ]]; then
|
|
echo "No device/emulator connected. Start emulator with ./start-emulator.sh or enable WiFi debugging."
|
|
exit 1
|
|
fi
|
|
echo "Devices: $DEVICES"
|
|
|
|
# -- install (keep data = upgrade)
|
|
echo "Installing..."
|
|
adb install -r "$APK"
|
|
echo "Installed."
|
|
|
|
# -- launch main activity
|
|
adb shell am start -n "$PKG/.MainActivity" 2>/dev/null || true
|
|
|
|
# -- stream relevant logs
|
|
echo ""
|
|
echo "Streaming logs (Ctrl-C to stop)..."
|
|
adb logcat -c && adb logcat -s UsageRepo:D MainActivity:D | sed 's/.*[VDIWEF]\///'
|