#!/usr/bin/env bash
set -euo pipefail

ROOT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)
REPRO="$ROOT/repro/venu3s-pairdevice-rtl-trap"
# shellcheck source=../../scripts/garmin-watch-common
source "$ROOT/scripts/garmin-watch-common"
VARIANT=${1:-default}

case "$VARIANT" in
  default) basename=venu3s-pair-repro ;;
  secure) basename=venu3s-pair-repro-secure ;;
  *) echo "Usage: $0 [default|secure]" >&2; exit 2 ;;
esac

prg="$REPRO/bin/$basename.prg"
[[ -f "$prg" ]] || { echo "Build first with: $REPRO/build $VARIANT" >&2; exit 1; }

mount_uri=$(wait_for_garmin_mtp_uri)
mapfile -t device_info < <(read_garmin_device "$mount_uri")
description=${device_info[0]:-}
part_number=${device_info[1]:-}
product=$(garmin_product_id "$description" "$part_number")
[[ "$product" == venu3s ]] || { echo "This reproduction is Venu 3S-only." >&2; exit 1; }

app_root="${mount_uri%/}/Internal%20Storage/GARMIN/Apps"
log_root="$app_root/LOGS"
app_uri="$app_root/$basename.prg"
log_uri="$log_root/$basename.TXT"
gio remove "$app_root/venu3s-pair-repro.prg" 2>/dev/null || true
gio remove "$app_root/venu3s-pair-repro-secure.prg" 2>/dev/null || true
gio remove "$log_root/venu3s-pair-repro.TXT" 2>/dev/null || true
gio remove "$log_root/venu3s-pair-repro-secure.TXT" 2>/dev/null || true
gio remove "$app_uri" 2>/dev/null || true
gio copy -p "$prg" "$app_uri"
if ! gio info "$log_uri" >/dev/null 2>&1; then
  empty_log=$(mktemp)
  trap 'rm -f "$empty_log"' EXIT
  gio copy -p "$empty_log" "$log_uri"
fi
echo "Deployed BLE Pair Repro ($VARIANT) to $description"
gio info "$app_uri" | sed -n '/display name\|size\|modified/p'
