#!/usr/bin/env bash
# macOS：先尝试修复 Docker 引擎，再打开 Docker Desktop 图形界面
# 当「没有鲸鱼、没有窗口」但 docker 曾装过时，多半是引擎卡死（API 500 / 超时）
# 用法：bash sdk/scripts/open_docker_desktop_gui.sh

set -e
if [[ "$(uname -s)" != "Darwin" ]]; then
  echo "本脚本仅适用于 macOS。"
  exit 1
fi

if [[ ! -d "/Applications/Docker.app" ]]; then
  echo "未找到 /Applications/Docker.app，请先安装 Docker Desktop。"
  exit 1
fi

if command -v docker >/dev/null 2>&1; then
  echo "== 1/3 尝试重启 Docker Desktop 引擎（docker desktop restart）=="
  if docker desktop restart 2>/dev/null; then
    echo "    已下发 restart，等待引擎响应…"
    for _ in $(seq 1 45); do
      if docker info >/dev/null 2>&1; then
        echo "    引擎已就绪（docker info 成功）。"
        break
      fi
      sleep 2
    done
  else
    echo "    restart 失败（可能 CLI 不可用），将直接尝试打开界面。"
  fi
else
  echo "== 1/3 未找到 docker 命令，跳过引擎重启 =="
fi

echo "== 2/3 打开 Docker Desktop 主程序（内嵌 App）=="
open "/Applications/Docker.app/Contents/MacOS/Docker Desktop.app" 2>/dev/null || open -a Docker
sleep 2

echo "== 3/3 打开仪表盘 URL =="
open "docker-desktop://dashboard" 2>/dev/null || true

echo ""
echo "已完成。若仍无鲸鱼图标："
echo "  · 菜单栏右侧可能被折叠，点 «⋯» 或双箭头展开隐藏图标（macOS 新版本常见）。"
echo "  · 系统设置 → 控制中心 → 检查与菜单栏相关的显示选项。"
echo "  · 终端执行: docker desktop status   与   docker version   确认引擎是否正常。"
