#!/bin/bash
set -e

case "$1" in
    configure)

        # 安装私有 apt 仓库的 GPG 密钥
        echo "正在配置 loongapps 私有源..."

        # 使用 mktemp 创建安全的临时文件
        GPG_TEMP=$(mktemp /tmp/loongnix-repo.gpg.XXXXXX) || {
            echo "错误：无法创建临时文件"
            exit 1
        }

        # 下载 GPG 密钥并验证
        if wget -q -O "$GPG_TEMP" https://app.loongapps.cn/app/loongnix-repo.gpg; then
            # 验证密钥文件是否有效（非空且是有效的 GPG 数据）
            if [ -s "$GPG_TEMP" ]; then
                # 确保密钥目录存在
                mkdir -p /etc/apt/keyrings

                # 使用原子操作安装密钥文件
                GPG_FINAL="/etc/apt/keyrings/loongnix-repo.gpg"
                if ! install -m 644 "$GPG_TEMP" "$GPG_FINAL"; then
                    echo "警告：无法安装 GPG 密钥文件，私有源未配置"
                    exit 0
                fi

                echo "GPG 密钥安装成功"
            else
                echo "警告：下载的 GPG 密钥文件为空，私有源未配置"
                exit 0
            fi
        else
            echo "警告：下载 GPG 密钥失败，私有源未配置"
            exit 0
        fi

        # 原子方式创建 APT 源配置文件
        LIST=/etc/apt/sources.list.d/loongapps.list
        LIST_TEMP=$(mktemp "${LIST}.XXXXXX") || {
            echo "警告：无法创建临时配置文件，私有源未配置"
            exit 0
        }
        trap 'rm -f "$GPG_TEMP" "$LIST_TEMP"' EXIT

        cat > "$LIST_TEMP" <<EOF
deb [signed-by=/etc/apt/keyrings/loongnix-repo.gpg] https://app.loongapps.cn/app stable main non-free
EOF

        # 原子移动操作
        if ! install -m 644 "$LIST_TEMP" "$LIST"; then
            echo "警告：无法创建 APT 源配置文件，私有源未配置"
            rm -f "$LIST_TEMP"
            exit 0
        fi

        echo "loongapps 私有源配置完成"
        ;;
esac

#DEBHELPER#

exit 0
