#!/bin/sh
# Диагностика: Mac не видит телефон по USB (заряжается, но нет data / USB-модема).
# Использование:
#   ./docs/apps/anytype/scripts/diagnose-phone-usb-mac.sh
#   ./docs/apps/anytype/scripts/diagnose-phone-usb-mac.sh watch   # опрос каждые 2 с

set -e

watch="${1:-}"

scan() {
  printf '\n=== %s ===\n' "$(date '+%H:%M:%S')"
  echo "--- USB (iPhone / Android) ---"
  if system_profiler SPUSBDataType 2>/dev/null | grep -qiE 'iPhone|iPad|Apple Mobile|Android|MTP|PTP|Vendor ID: 0x05ac|Vendor ID: 0x18d1|Vendor ID: 0x04e8|Vendor ID: 0x2717'; then
    system_profiler SPUSBDataType 2>/dev/null | grep -B1 -A6 -iE 'iPhone|iPad|Apple Mobile|Android|MTP|PTP|Vendor ID: 0x05ac|Vendor ID: 0x18d1|Vendor ID: 0x04e8|Vendor ID: 0x2717'
  else
    echo "Телефон в USB-дереве НЕ найден (только зарядка или кабель/порт без data)."
  fi
  echo "--- usbmuxd (iPhone) ---"
  pgrep -lf usbmuxd 2>/dev/null || echo "usbmuxd не запущен"
  if command -v idevice_id >/dev/null 2>&1; then
    echo "idevice_id -l: $(idevice_id -l 2>&1 || true)"
  fi
  echo "--- Сетевые интерфейсы (ожидаем iPhone USB / RNDIS) ---"
  networksetup -listallnetworkservices 2>/dev/null | grep -iE 'iphone|usb|rndis|android' || echo "(службы USB-модема нет)"
  echo "--- Совет ---"
  echo "1) Кабель с передачей данных (не «только зарядка»)"
  echo "2) Порт Mac напрямую, не через хаб (сейчас виден Genesys USB Hub)"
  echo "3) iPhone: Разблокировать → «Доверять» → Настройки → Режим модема → USB"
  echo "4) Android: USB → «Передача файлов» или «USB-модем»"
}

if [ "$watch" = "watch" ]; then
  echo "Следим за USB. Переподключите телефон. Ctrl+C для выхода."
  while true; do scan; sleep 2; done
else
  scan
fi
