capture-screenshots.sh (1011B)
1 #!/usr/bin/env bash 2 3 set -euo pipefail 4 5 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" 6 REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" 7 OUT_DIR="${1:-$REPO_ROOT/merchant-terminal/build/screenshots}" 8 shift || true 9 10 if [[ $# -gt 0 ]]; then 11 SCENARIOS=("$@") 12 else 13 SCENARIOS=("amount-entry" "order" "payment" "payment-success") 14 fi 15 16 APP_ID="net.taler.merchantpos" 17 ACTIVITY="$APP_ID/.MainActivity" 18 EXTRA_KEY="taler_pos_screenshot_scenario" 19 20 mkdir -p "$OUT_DIR" 21 22 if ! command -v adb >/dev/null 2>&1; then 23 echo "adb is required" >&2 24 exit 1 25 fi 26 27 if ! adb get-state >/dev/null 2>&1; then 28 echo "No Android device or emulator detected" >&2 29 exit 1 30 fi 31 32 "$REPO_ROOT/gradlew" :merchant-terminal:installDebug 33 34 for scenario in "${SCENARIOS[@]}"; do 35 echo "Capturing $scenario" 36 adb shell am force-stop "$APP_ID" >/dev/null 2>&1 || true 37 adb shell am start -W -n "$ACTIVITY" --es "$EXTRA_KEY" "$scenario" >/dev/null 38 sleep 2 39 adb exec-out screencap -p > "$OUT_DIR/$scenario.png" 40 done 41 42 echo "Saved screenshots to $OUT_DIR"