#!/bin/bash
# ZiPad Host macOS One-line Installer
# Usage: curl -fsSL https://zipad.meluon.fun/install.sh | bash
set -euo pipefail

APP_NAME="ZiPad Host.app"
INSTALL_DIR="/Applications"
TARGET_APP="$INSTALL_DIR/$APP_NAME"
DOWNLOAD_URL="https://zipad.meluon.fun/download/ZiPad-Host.zip"

# Detect system language from environment variables (zh, ja, or default en)
SYS_LANG="${LANG:-${LC_ALL:-${LC_MESSAGES:-en}}}"
case "$SYS_LANG" in
    zh*|*-CN*|*-TW*|*-HK*)
        LOCALE="zh"
        ;;
    ja*|*-JP*)
        LOCALE="ja"
        ;;
    *)
        LOCALE="en"
        ;;
esac

# Localized string definitions
if [[ "$LOCALE" == "zh" ]]; then
    MSG_HEADER="🍏 正在安装 ZiPad Host (Mac 扩展屏主机端)..."
    MSG_ERR_OS="❌ 错误：此脚本仅支持 macOS 系统。"
    MSG_DOWNLOADING="⬇️  正在下载最新版 ZiPad Host..."
    MSG_ERR_DOWNLOAD="❌ 下载失败，请检查网络连接。"
    MSG_INSTALLING="📦 正在解压并安装到 $INSTALL_DIR..."
    MSG_REPLACING="⚠️  检测到已安装的旧版本，正在替换..."
    MSG_SECURITY="🛡️  正在配置系统安全权限（移除 Quarantine 拦截）..."
    MSG_SUCCESS_HEADER="🎉 安装完成！"
    MSG_SUCCESS_BODY="您可以在“启动台（Launchpad）”或“访达 → 应用程序”中直接打开 ZiPad Host。"
elif [[ "$LOCALE" == "ja" ]]; then
    MSG_HEADER="🍏 ZiPad Host (Mac 拡張ディスプレイホスト) をインストールしています..."
    MSG_ERR_OS="❌ エラー: このスクリプトは macOS にのみ対応しています。"
    MSG_DOWNLOADING="⬇️  最新版 ZiPad Host をダウンロードしています..."
    MSG_ERR_DOWNLOAD="❌ ダウンロードに失敗しました。ネットワーク接続を確認してください。"
    MSG_INSTALLING="📦 解凍して $INSTALL_DIR にインストールしています..."
    MSG_REPLACING="⚠️  既存の古いバージョンを検出しました。置換しています..."
    MSG_SECURITY="🛡️  システムセキュリティ権限を設定中（Gatekeeper 制限を解除）..."
    MSG_SUCCESS_HEADER="🎉 インストールが完了しました！"
    MSG_SUCCESS_BODY="「Launchpad」または「Finder → アプリケーション」から ZiPad Host を起動できます。"
else
    MSG_HEADER="🍏 Installing ZiPad Host (Mac Display Server)..."
    MSG_ERR_OS="❌ Error: This installer only supports macOS."
    MSG_DOWNLOADING="⬇️  Downloading the latest ZiPad Host..."
    MSG_ERR_DOWNLOAD="❌ Download failed. Please check your network connection."
    MSG_INSTALLING="📦 Extracting and installing to $INSTALL_DIR..."
    MSG_REPLACING="⚠️  Detected existing installation, replacing..."
    MSG_SECURITY="🛡️  Configuring security permissions (clearing quarantine flag)..."
    MSG_SUCCESS_HEADER="🎉 Installation Complete!"
    MSG_SUCCESS_BODY="You can now launch ZiPad Host from Launchpad or Finder → Applications."
fi

echo "=========================================================="
echo "$MSG_HEADER"
echo "=========================================================="

# Ensure host environment is macOS
if [[ "$(uname)" != "Darwin" ]]; then
    echo "$MSG_ERR_OS"
    exit 1
fi

# Create a temporary scratch directory
TEMP_DIR="$(mktemp -d)"
trap 'rm -rf "$TEMP_DIR"' EXIT

# Download release archive
echo "$MSG_DOWNLOADING"
curl -fsSL --progress-bar "$DOWNLOAD_URL" -o "$TEMP_DIR/ZiPad-Host.zip" || {
    echo "$MSG_ERR_DOWNLOAD"
    exit 1
}

# Extract and install into /Applications
echo "$MSG_INSTALLING"
unzip -qo "$TEMP_DIR/ZiPad-Host.zip" -d "$TEMP_DIR"

if [[ -d "$TARGET_APP" ]]; then
    echo "$MSG_REPLACING"
    rm -rf "$TARGET_APP"
fi

cp -R "$TEMP_DIR/$APP_NAME" "$INSTALL_DIR/"

# Remove macOS quarantine extended attributes to bypass Gatekeeper warning
echo "$MSG_SECURITY"
xattr -cr "$TARGET_APP" 2>/dev/null || true

echo "=========================================================="
echo "$MSG_SUCCESS_HEADER"
echo "$MSG_SUCCESS_BODY"
echo "=========================================================="

# Automatically launch the application
open -a "$TARGET_APP" 2>/dev/null || true
