#!/bin/bash
# 码神未做 Apple 公证时，微信 / 隔空投送 / 浏览器下载后会被系统标成「已损坏」。
# 双击本脚本即可清除隔离标记。

set -e
clear
echo "========================================"
echo "  码神 · 修复「已损坏，无法打开」"
echo "========================================"
echo
echo "说明：不是安装包坏了，是 macOS 安全机制。"
echo "本脚本会清除「隔离」标记，然后即可正常打开。"
echo

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

# 同时清理同目录下的 DMG（打开 DMG 前先清一次更稳）
shopt -s nullglob 2>/dev/null || true
for dmg in "$SCRIPT_DIR"/码神*.dmg "$HOME/Downloads"/码神*.dmg "$HOME/Desktop"/码神*.dmg; do
  if [ -f "$dmg" ]; then
    echo "清理安装包：$dmg"
    xattr -cr "$dmg" 2>/dev/null || true
  fi
done

APP=""
for candidate in \
  "/Applications/码神.app" \
  "$HOME/Applications/码神.app" \
  "$HOME/Downloads/码神.app" \
  "$HOME/Desktop/码神.app" \
  "$SCRIPT_DIR/码神.app" \
  "$SCRIPT_DIR/mac-arm64/码神.app"
do
  if [ -d "$candidate" ]; then
    APP="$candidate"
    break
  fi
done

# 挂载中的 DMG 里的 App
if [ -z "$APP" ]; then
  for vol in /Volumes/码神*; do
    if [ -d "$vol/码神.app" ]; then
      APP="$vol/码神.app"
      break
    fi
  done
fi

if [ -z "$APP" ]; then
  echo "没有在常见位置找到「码神.app」。"
  echo
  echo "请先把码神拖到「应用程序」文件夹，再运行本脚本；"
  echo "或把「码神.app」拖到本窗口后回车："
  read -r APP
  APP="${APP%\'}"
  APP="${APP#\'}"
  APP="${APP%\"}"
  APP="${APP#\"}"
  # 去掉拖入时可能带的 "file://" 或末尾空格
  APP="${APP#file://}"
  APP="$(printf '%b' "${APP//%/\\x}")"
  APP="$(echo "$APP" | sed 's/[[:space:]]*$//')"
fi

if [ ! -d "$APP" ]; then
  echo "找不到应用：$APP"
  echo
  echo "也可自己打开「终端」粘贴（App 在应用程序里时）："
  echo "  xattr -cr /Applications/码神.app"
  echo
  echo "按任意键退出…"
  read -r _
  exit 1
fi

echo "将修复：$APP"
echo
if xattr -cr "$APP" 2>/dev/null; then
  echo "✓ 已清除隔离标记。"
else
  echo "需要管理员权限，请输入本机登录密码："
  sudo xattr -cr "$APP"
  echo "✓ 已清除隔离标记。"
fi

echo
echo "现在可以打开「码神」了。"
echo "若仍提示无法打开：按住 Control 键点击「码神」→ 打开 → 再点打开。"
echo "或到：系统设置 → 隐私与安全性 → 仍要打开。"
echo
echo "按任意键退出…"
read -r _
