Files
claude-usage-widget/deploy.sh
T

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]\///'