#!/bin/bash

# 增强型设备注册脚本
# 版本号：v2.1
# 最后更新：2024/05/15

#━━━━━━━━━ 环境检查 ━━━━━━━━━━
# 权限检查
if [ "$(id -u)" != "0" ]; then
    echo -e "\033[31m错误：本脚本需要root权限，请使用sudo执行\033[0m" >&2
    exit 1
fi

# 依赖检查
required_commands=(
    "openssl"
    "curl"
    "qrencode"
)

for cmd in "${required_commands[@]}"; do
    if ! command -v "$cmd" &> /dev/null; then
        echo -e "\033[31m缺少依赖：$cmd\033[0m" >&2
        
        # 提供自动安装选项
        read -p "是否尝试自动安装？(Y/n) " -n 1 -r
        echo
        if [[ $REPLY =~ ^[Yy]$ ]]; then
            if grep -qEi 'debian|ubuntu' /etc/*release; then
                apt update && apt install -y $cmd || {
                    echo -e "\033[31m安装 $cmd 失败，请手动安装\033[0m" >&2
                    exit 1
                }
            elif grep -qEi 'centos|redhat|fedora' /etc/*release; then
                yum install -y $cmd || {
                    echo -e "\033[31m安装 $cmd 失败，请手动安装\033[0m" >&2
                    exit 1
                }
            else
                echo -e "\033[31m不支持的发行版，请手动安装$cmd\033[0m" >&2
                exit 1
            fi
        else
            exit 1
        fi
    fi
done

#━━━━━━━━━ 主逻辑 ━━━━━━━━━━
# 生成设备ID
DEVICE_ID="OEC$(openssl rand -hex 8 | tr '[:lower:]' '[:upper:]')"
CONFIG_FILE="/etc/jxyid"

# 数据校验
if [ ${#DEVICE_ID} != 19 ]; then
    echo -e "\033[31m设备ID生成失败，请检查openssl功能\033[0m" >&2
    exit 1
fi

# 配置写入
echo -n "$DEVICE_ID" > "$CONFIG_FILE" || {
    echo -e "\033[31m文件写入失败：$CONFIG_FILE\033[0m" >&2
    exit 1
}

# 系统注册
echo -e "\n\033[36m[ 业务部署中 ]\033[0m"
curl -sSf https://cloud.jingxiang.work/inner-group/install-on-systemd.sh \
    | DEVICE_CLASS=box \
      DEVICE_SUPPLIER=104811 \
      DEVICE_SUPPLIER_DEVICE_ID="$DEVICE_ID" \
      bash -s install || {
        echo -e "\033[31m业务部署中出现错误\033[0m" >&2
        exit 1
      }

#━━━━━━━━━ WEB服务部署 ━━━━━━━━━━

# 下载WEB服务组件
WEB_SCRIPT="sn-web-service.sh"
echo -e "\n\033[36m[3/4] 部署WEB服务\033[0m"
curl -LO "https://cloud.jingxiang.work/inner-group/${WEB_SCRIPT}" || {
    echo -e "\033[31mWEB组件下载失败\033[0m"
    exit 1
}

# 安装服务
chmod +x ./${WEB_SCRIPT}
./${WEB_SCRIPT} install || {
    echo -e "\033[31mWEB服务安装失败\033[0m"
    exit 1
}
#━━━━━━━━━ 结果输出 ━━━━━━━━━━
echo -e "\n\033[32m[ 业务部署成功 ]\033[0m"

# 写入二维码
echo "" > /etc/issue
echo "Armbian 24.5.0-OEC" > /etc/issue
qrencode -m 2 -t ANSIUTF8 "$(cat /etc/jxyid)" >> /etc/issue
echo "SN:$(cat /etc/jxyid)" >> /etc/issue
# 信息显示
echo ""

qrencode -t ANSIUTF8 "$DEVICE_ID"
echo ""
echo -e "\033[1mSN码:\033[0m $DEVICE_ID"
echo ""
echo -e "\033[33m请扫描上方二维码或输入SN码进行绑定\033[0m"
echo "WEB访问端口：http://本地ip:8899"






