#!/bin/bash
# 外贸单证与装柜系统（专业版） · macOS 启动器
# 本 app 不内置浏览器内核：优先调用 Chrome / Edge 以「应用模式」打开（无地址栏）；
# 找不到时明确告知用户，而不是静默退回 Safari。

HERE="$(cd "$(dirname "$0")/../Resources" && pwd)"
FILE="$HERE/app.html"
DATA="$HOME/Library/Application Support/TradeDocsPro"
mkdir -p "$DATA" 2>/dev/null

# 用系统自带 perl 做 UTF-8 百分号编码（路径含中文/空格也安全）
URL="file://$(/usr/bin/perl -e '$s=shift; $s =~ s/([^A-Za-z0-9\/._~:-])/sprintf("%%%02X", ord($1))/ge; print $s' "$FILE" 2>/dev/null)"
[ -z "${URL#file://}" ] && URL="file://$FILE"

CANDIDATES=(
  "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
  "$HOME/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
  "/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary"
  "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
  "$HOME/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
  "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
  "/Applications/Vivaldi.app/Contents/MacOS/Vivaldi"
  "/Applications/Arc.app/Contents/MacOS/Arc"
  "/Applications/Chromium.app/Contents/MacOS/Chromium"
)

for B in "${CANDIDATES[@]}"; do
  if [ -x "$B" ]; then
    ("$B" --app="$URL" --user-data-dir="$DATA" --no-first-run --no-default-browser-check >/dev/null 2>&1 &)
    exit 0
  fi
done

# 兜底：按 bundle id 找（应对非标准安装位置）
for BID in com.google.Chrome com.microsoft.edgemac com.brave.Browser com.vivaldi.Vivaldi; do
  if /usr/bin/mdfind "kMDItemCFBundleIdentifier == '$BID'" 2>/dev/null | head -1 | grep -q .; then
    open -b "$BID" --args --app="$URL" --user-data-dir="$DATA" --no-first-run --no-default-browser-check >/dev/null 2>&1 && exit 0
  fi
done

# 没找到 Chromium 系浏览器：明确告知，让用户选择
CHOICE=$(/usr/bin/osascript <<'EOS' 2>/dev/null
display dialog "没有找到 Chrome 或 Edge，只能用 Safari 打开。

Safari 打开会带地址栏，看起来就像网页 —— 这是 Safari 的限制，不是软件装错了。

想要真正独立的软件窗口，二选一：
① 安装 Chrome 或 Edge（免费），再双击本应用；
② macOS 14 及以上：用 Safari 打开后，点菜单「文件 → 添加到程序坞」。

现在先用 Safari 打开吗？" buttons {"取消", "用 Safari 打开"} default button "用 Safari 打开" with title "外贸单证与装柜系统" with icon note
EOS
)

if [ "$CHOICE" = "用 Safari 打开" ]; then
  open -a Safari "$URL" 2>/dev/null || open "$FILE"
fi
