#!/bin/bash
set -euo pipefail  # 开启严格模式，遇到错误立即退出

# 定义颜色常量，提升输出可读性
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # 无颜色

# 函数：打印错误信息并退出
error_exit() {
    echo -e "${RED}错误: $1${NC}" >&2
    exit 1
}

# 函数：打印信息
info() {
    echo -e "${GREEN}信息: $1${NC}"
}

# 检查是否以root权限运行
if [ "$EUID" -ne 0 ]; then
    error_exit "请使用root权限运行此脚本 (sudo $0)"
fi

# 系统架构检查 只支持x86_64和aarch64
ARCH=$(uname -m)
info "检测到系统架构: $ARCH"

if [ "$ARCH" != "x86_64" ] && [ "$ARCH" != "aarch64" ]; then
    error_exit "不支持的系统架构: $ARCH，仅支持x86_64和aarch64"
fi

# 根据架构设置下载地址
case "$ARCH" in
    x86_64)
        DOWNLOAD_URL="https://download.bt.cn/site_total/x86-64.zip"
        ;;
    aarch64)
        DOWNLOAD_URL="https://download.bt.cn/site_total/arm64.zip"
        ;;
esac

# 安装路径（已确认存在）
INSTALL_DIR="/www/server/"

# 下载文件到临时位置
TEMP_ZIP=$(mktemp /tmp/site_total.XXXXXX.zip) || error_exit "无法创建临时文件"
info "开始下载: $DOWNLOAD_URL"
wget  -O "$TEMP_ZIP" "$DOWNLOAD_URL" || {
    rm -f "$TEMP_ZIP"
    error_exit "下载文件失败"
}

# 解压文件
info "正在解压文件到 $INSTALL_DIR"
unzip -q -o "$TEMP_ZIP" -d "$INSTALL_DIR" || {
    rm -f "$TEMP_ZIP"
    error_exit "解压文件失败"
}


# 清理临时文件
rm -f "$TEMP_ZIP"

# 设置可执行权限
chmod +x "$INSTALL_DIR/site_total" || error_exit "无法设置文件权限"


# 执行安装脚本
INSTALL_SCRIPT="$INSTALL_DIR/site_total/scripts/install.sh"
if [ -f "$INSTALL_SCRIPT" ]; then
    info "开始执行安装脚本..."
    bash "$INSTALL_SCRIPT" || error_exit "安装脚本执行失败"
else
    error_exit "未找到安装脚本: $INSTALL_SCRIPT"
fi

if [ $? -eq 0 ]; then
    # 创建目录结构
    mkdir -p $INSTALL_DIR/site_total/data/hll
    mkdir -p $INSTALL_DIR/site_total/data/all
    mkdir -p $INSTALL_DIR/site_total/data/total
    mkdir -p $INSTALL_DIR/site_total/data/cache
fi

info "所有操作完成"
