#!/bin/sh -e
# ESET PROTECT - 纯离线安装脚本
# Copyright (c) 1992-2026 ESET, spol. s r.o. All Rights Reserved

files2del="$(mktemp -q /tmp/EraAgentOnlineInstaller.XXXXXXXX)"
dirs2del="$(mktemp -q /tmp/EraAgentOnlineInstaller.XXXXXXXX)"
echo "$dirs2del" >> "$files2del"
dirs2umount="$(mktemp -q /tmp/EraAgentOnlineInstaller.XXXXXXXX)"
echo "$dirs2umount" >> "$files2del"

finalize()
{
  set +e
  echo "Cleaning up:"
  if test -f "$dirs2umount"
  then
    while read f
    do
      # 尝试安全地卸载DMG
      sudo -S hdiutil detach "$f" 2>/dev/null || true
    done < "$dirs2umount"
  fi
  if test -f "$dirs2del"
  then
    while read f
    do
      test -d "$f" && rm -rf "$f"
    done < "$dirs2del"
  fi
  if test -f "$files2del"
  then
    while read f
    do
      rm -f "$f"
    done < "$files2del"
    rm -f "$files2del"
  fi
}

trap 'finalize' HUP INT QUIT TERM EXIT

# -------------------------------------------------------------------
# ① 官方配置变量 (保持不变，请确保填写完整)
# -------------------------------------------------------------------
eraa_server_hostname="qza4mfqywhtudehfbatgzegtya.a.ecaserver.eset.com"
eraa_server_port="443"
eraa_server_company_name='xiaobaitu'
eraa_peer_cert_b64="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"
eraa_peer_cert_pwd=""
eraa_ca_cert_b64="MIIFpDCCA4ygAwIBAgIIMUSW0eFkh/8wDQYJKoZIhvcNAQELBQAwaDELMAkGA1UEBhMCU0sxGDAWBgNVBAgTD1Nsb3ZhayBSZXB1YmxpYzETMBEGA1UEBxMKQnJhdGlzbGF2YTENMAsGA1UEChMERXNldDEbMBkGA1UEAxMSRVBDIEFnZW50IHByb3h5IENBMB4XDTIyMDYyMDAwMDAwMFoXDTMyMDYxOTIzNTk1OVowaDELMAkGA1UEBhMCU0sxGDAWBgNVBAgTD1Nsb3ZhayBSZXB1YmxpYzETMBEGA1UEBxMKQnJhdGlzbGF2YTENMAsGA1UEChMERXNldDEbMBkGA1UEAxMSRVBDIEFnZW50IHByb3h5IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApFyygZ31hn6s/K7+Lm/r3KP+P5Gn0pb5J6IR0F+KtBUiNE9nRn5PnVDdyj9uVd6BZIKcczoHebH/70GQUuOzprDtHhWUTNDZ7R4NfNz0u5cYn2mKPk9lJRPEcuvqKr+aGsCs1yMv226xd72ngJE/Z2MlGLGX5+kuO0HmQWRUK/SDtmcCvforHs7zE19PjXmZQnpW+bUFkLeHcHS4WtJ64CNkbuTHssK8nNDQoJXLZVKafLWCkAZ94vpZWDRG5AffdBDnKrSy+WOTI6dOJw8i+uJ7YtWconTJo9NRCcgTzCHujylXgqWkwm3f+Wh/h0u5KIJEzTPN/RTzP+/SWEDrYi7+wECXWv6kU3Ty3KkzPGsAt9ABmnvAUGShi8Heyhnes6E3IiUt3wko+LHVw9hFyXFjfqtgRtxvOTcX06zinpQbtl+d1Wm7mU/ORFIPffRec4B9YewF1VRCm4gT5vqFZbO7BUnuyKFeGr6Vxlgrgz0mPS0PAoATI500x9g8Md3Mmshc/6wLInMHgSh//n+aylnePRrTvLEJhcWgoDx57wZ7G5fTeHEFIRrcU3ez6PSKbodCBcjfWrGLkXNQzmIwhDxVRmo4DXLga6MzbYqU54zQVfk60CiFEvwwK8l7WBZ7XlqxRl8QmsIUGf278N8Hxe0qOs7fcZPvuVHyhS4WKxsCAwEAAaNSMFAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUZ9DJSflsyGkpLas5Ll3dMzeMJSEwCwYDVR0PBAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQsFAAOCAgEAWrXSFAd4OmT0bxHj1q+zMROTxXalzfAfqncTGaTm2NiqL5be3WfgnQLjGOMX+VVC1YXDlI2xs2JAWD3myRT4u7g1Y320HmjWczaE36h8PrnL+M/LEIHem3bM7e6ZFGHzwN80D5bmM++qacrGnnSDXid/sVx2Vi5KKXOXcFB74Haef5mqVm9uNpjDuUO+7Zdip6xqieHOpYD7HIWCkq/bJXxyrPr9CY37KyVdeMoU8QuIzdlgn5l0yc8LNBXXv7pba+ykPirIWe1ZR0O0z5e0gAqUe0kz9fpiMmzWpaGS/4s8gt0oYX2Ahibc3Lgg179OOpUFOsz92TmPVQCnzseZCPirikCA7qUAmMFKqs+l+X6DdKIrL4ocHs5zFAL9fysdKpczKczAWpZXr9LtuY6WFDkcWhxm4kj1MXyte8UBBC4C1UX47Km5TlOQUApnp7LMXI3jlBB+2Lo3T9N2FhiQ5R2PoNdA+XONNaBb8E9mh83wOvA6+Me1Rb7bIO6q/dTULd41Jns3JQ8zy0H8rQrOSOREWfieW0Czd38ZRJoa7MRp6Z3aYAuqt8pJpOykVbKQY/OYh43pt5gfgFvIkI3CuoJvLPQ3bYKyBiJN8PYhFpOyLYOrOJqbd26x+QFORgiBdZo6u6Em31l3fVpiaMcSAD9Cny6VUEC2aYn00beB2Vc="
eraa_product_uuid=""
eraa_initial_sg_token="MDczZDZiM2YtNzI3Zi00ZTUwLWFjNGUtNjRjOWRlZWJjMGU1U24bCbfNSvCe3VD7MWwtCoE3GJlEeEZ4qxDg8rEQ2x1HxYpfbHrLgi7wvVhddMobNnJxSg=="
eraa_enable_telemetry="0"
eraa_policy_data="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"

eraa_http_proxy_use="0"
eraa_http_proxy_hostname=""
eraa_http_proxy_port=""
eraa_http_proxy_user=""
eraa_http_proxy_password=""

arch=$(uname -m)
# ⚠️ 官方脚本中的下载链接和校验和变量保持不变，但不会被使用
eraa_installer_url="http://repository.eset.com/v1/com/eset/apps/business/era/agent/v13/13.1.1110.0/agent_macosx_x86_64.dmg"
eraa_installer_checksum="eb643ec901c4a54a08c8838e6977c1038fd73a8fe18ef95ab1a990ce531a226e"
if $(echo "$arch" | grep -E "^(x86_64|amd64)$" 2>&1 > /dev/null)
then
    eraa_installer_url="http://repository.eset.com/v1/com/eset/apps/business/era/agent/v13/13.1.1110.0/agent_macosx_x86_64.dmg"
    eraa_installer_checksum="eb643ec901c4a54a08c8838e6977c1038fd73a8fe18ef95ab1a990ce531a226e"
elif $(echo "$arch" | grep -E "^(arm64)$" 2>&1 > /dev/null)
then
    eraa_installer_url="http://repository.eset.com/v1/com/eset/apps/business/era/agent/v13/13.1.1110.0/agent_macosx_x86_64.dmg"
    eraa_installer_checksum="eb643ec901c4a54a08c8838e6977c1038fd73a8fe18ef95ab1a990ce531a226e"
    if test -z $eraa_installer_url
    then
        eraa_installer_url="http://repository.eset.com/v1/com/eset/apps/business/era/agent/v13/13.1.1110.0/agent_macosx_x86_64.dmg"
        eraa_installer_checksum="eb643ec901c4a54a08c8838e6977c1038fd73a8fe18ef95ab1a990ce531a226e"
    fi
fi

echo "ESET Management Agent live installer script. Copyright © 1992-2026 ESET, spol. s r.o. - All rights reserved."

if test ! -z "$eraa_server_company_name"
then
  echo " * CompanyName: $eraa_server_company_name"
fi
echo " * Hostname: $eraa_server_hostname"
echo " * Port: $eraa_server_port"
echo " * Platform: $arch"
echo " * Installer: $eraa_installer_url"
echo

if test -z "$eraa_installer_url"
then
  echo "No installer available for '$arch' arhitecture."
  exit 1
fi

# -------------------------------------------------------------------
# ② PLIST 文件写入 (保持不变，用于配置安装包)
# -------------------------------------------------------------------
local_params_file="/tmp/postflight.plist"
echo "$local_params_file" >> "$files2del"

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" >> "$local_params_file"
echo "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">" >> "$local_params_file"
echo "<plist version=\"1.0\">" >> "$local_params_file"
echo "<dict>" >> "$local_params_file"

echo "  <key>Hostname</key><string>$eraa_server_hostname</string>" >> "$local_params_file"
echo "  <key>SendTelemetry</key><string>$eraa_enable_telemetry</string>" >> "$local_params_file"

echo "  <key>Port</key><string>$eraa_server_port</string>" >> "$local_params_file"

if test -n "$eraa_peer_cert_pwd"
then
  echo "  <key>PeerCertPassword</key><string>$eraa_peer_cert_pwd</string>" >> "$local_params_file"
  echo "  <key>PeerCertPasswordIsBase64</key><string>yes</string>" >> "$local_params_file"
fi

echo "  <key>PeerCertContent</key><string>$eraa_peer_cert_b64</string>" >> "$local_params_file"


if test -n "$eraa_ca_cert_b64"
then
  echo "  <key>CertAuthContent</key><string>$eraa_ca_cert_b64</string>" >> "$local_params_file"
fi
if test -n "$eraa_product_uuid"
then
  echo "  <key>ProductGuid</key><string>$eraa_product_uuid</string>" >> "$local_params_file"
fi
if test -n "$eraa_initial_sg_token"
then
  echo "  <key>InitialStaticGroup</key><string>$eraa_initial_sg_token</string>" >> "$local_params_file"
fi
if test -n "$eraa_policy_data"
then

  echo "  <key>CustomPolicy</key><string>$eraa_policy_data</string>" >> "$local_params_file"
fi

if test "$eraa_http_proxy_use" = "1"
then
  echo "  <key>UseProxy</key><string>$eraa_http_proxy_use</string>" >> "$local_params_file"
  echo "  <key>ProxyHostname</key><string>$eraa_http_proxy_hostname</string>" >> "$local_params_file"
  echo "  <key>ProxyPort</key><string>$eraa_http_proxy_port</string>" >> "$local_params_file"
  echo "  <key>ProxyUsername</key><string>$eraa_http_proxy_user</string>" >> "$local_params_file"
  echo "  <key>ProxyPassword</key><string>$eraa_http_proxy_password</string>" >> "$local_params_file"
fi

echo "</dict>" >> "$local_params_file"
echo "</plist>" >> "$local_params_file"

# -------------------------------------------------------------------
# ③ 本地文件查找 (取代下载逻辑)
# -------------------------------------------------------------------
# ⚠️ [修改点 1]: 移除所有下载/校验逻辑，强制使用本地文件
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
local_installer="$SCRIPT_DIR/agent_macosx_x86_64.dmg"

if test -s "$local_installer"
then
    echo "Found local installer: '$local_installer'"
else
    echo "❌ 错误: 未找到本地安装包 '$local_installer'。"
    echo "请确保 agent_macosx_x86_64.dmg 和本脚本在同一目录！"
    exit 2
fi

# -------------------------------------------------------------------
# ④ DMG 挂载、PKG 查找、安装 (修正 PKG 查找逻辑)
# -------------------------------------------------------------------

if $(echo "$local_installer" | grep -E "\.dmg$" 2>&1 > /dev/null)
then
    local_mount="$(mktemp -q -d /tmp/EraAgentOnlineInstaller.XXXXXXXX)" && echo "$local_mount" | tee "$dirs2del" >> "$dirs2umount"
    echo "Mounting image '$local_installer':"
    
    # 挂载 DMG
    if ! sudo -S hdiutil attach "$local_installer" -mountpoint "$local_mount" -nobrowse
    then
        echo "❌ 错误: 无法挂载 DMG 文件 '$local_installer'。"
        exit 3
    fi

    # ⚠️ [修改点 2]: 修复 PKG 查找，使用 find -maxdepth 3 确保找到安装包
    local_pkg_path="$(find "$local_mount" -maxdepth 3 -name "*.pkg" | head -n 1)"

    if [ -z "$local_pkg_path" ]
    then
        echo "❌ 错误: 在挂载点 '$local_mount' 中未找到 Agent PKG 文件。"
        sudo -S hdiutil detach "$local_mount" 2>/dev/null || true
        exit 4
    fi

    # 安装命令需要完整的路径
    echo "Installing package '$local_pkg_path':"
    if ! sudo -S installer -pkg "$local_pkg_path" -target /
    then
        echo "❌ ESET Agent 安装失败。请检查系统权限或安装包兼容性。"
        sudo -S hdiutil detach "$local_mount" 2>/dev/null || true
        exit 5
    fi

    # 卸载 DMG
    echo "Unmounting image '$local_mount':" && sudo -S hdiutil detach "$local_mount"

# 如果是 .pkg 文件 (非 .dmg)
elif $(echo "$local_installer" | grep -E "\.pkg$" 2>&1 > /dev/null)
then
    echo "Installing package '$local_installer':" && sudo -S installer -pkg "$local_installer" -target /
else
    echo "Installing package '$local_installer' has unsupported package type"
fi



# -------------------------------------------------------------------
# ⑤ ESET Agent 配置确认 (依赖 postflight.plist)
# -------------------------------------------------------------------
echo "------------------------------------------------------"
echo "Agent 配置完成。依赖安装包自动读取 /tmp/postflight.plist"
echo "请检查 Agent 是否已在 ESET PROTECT Web Console 中注册。"
echo "------------------------------------------------------"

# 尝试唤醒 Agent 服务，确保它读取配置并连接服务器 (如果服务已启动)
if command -v launchctl >/dev/null 2>&1; then
    echo "尝试唤醒 Agent 服务..."
    # 针对新 Agent 版本，尝试触发服务启动/唤醒
    sudo launchctl kickstart -k system/com.eset.remoteadministrator.agent 2>/dev/null || true
fi


# -------------------------------------------------------------------
# ⑥ ESET Endpoint Security (EES) 安装
# -------------------------------------------------------------------

echo "------------------------------------------------------"
echo "开始安装 ESET Endpoint Security (EES)"
echo "------------------------------------------------------"

EES_DMG="$SCRIPT_DIR/ees_osx.dmg"

if [ -f "$EES_DMG" ]; then
    echo "找到 Endpoint 安装包：$EES_DMG"

    # 挂载 EES DMG
    EES_MOUNT_POINT="$(mktemp -q -d /tmp/EraEESInstaller.XXXXXXXX)" && echo "$EES_MOUNT_POINT" | tee "$dirs2del" >> "$dirs2umount"

    if ! sudo -S hdiutil attach "$EES_DMG" -mountpoint "$EES_MOUNT_POINT" -nobrowse
    then
        echo "❌ 错误: 无法挂载 EES DMG 文件，跳过安装。"
    else
        # 查找 PKG 文件 (使用 find -maxdepth 3 确保找到)
        EES_PKG_PATH="$(find "$EES_MOUNT_POINT" -maxdepth 3 -name "*.pkg" | head -n 1)"

        if [ -z "$EES_PKG_PATH" ]
        then
            echo "❌ 错误: 在挂载点中未找到 EES PKG 文件，跳过安装。"
        else
            # 执行 EES 安装
            echo "开始安装 EES：$EES_PKG_PATH"
            if ! sudo -S installer -pkg "$EES_PKG_PATH" -target /
            then
                echo "❌ ESET Endpoint Security 安装失败。"
            else
                echo "✅ ESET Endpoint Security 安装命令已执行。"
            fi
        fi

        # 卸载 EES DMG
        echo "Unmounting EES image '$EES_MOUNT_POINT':" && sudo -S hdiutil detach "$EES_MOUNT_POINT" 2>/dev/null || true
    fi
else
    echo "⚠️ EES 安装包 (ees_osx.dmg) 未找到，跳过安装。"
fi


echo "======================================================="
echo "   所有安装任务完成！请完成ESET权限设置与激活。"
echo "======================================================="

exit 0