#!/bin/bash
set -euo pipefail

# ===== 配置参数 =====
KEYRING_PATH="/usr/share/keyrings/agiros.gpg"
SOURCE_LIST_PATH="/etc/apt/sources.list.d/agiros.list"
USER_ID="agiros-repo-signing-key <lihongyu@agiros.edu.cn>"
KEY_IDS=(
    "21B5FC18808A5E53B0DB8DC8A2180F6FC2FB0784"
    "3A6094468DDEB0B913B9A2CF2B46C87FAFB44C88"
    "AA976E6026F297DEC1ADB32D4A550D446E70D279"
    "395287465BD74F851ED9A59D5B466A1738412D34"
    "0268274C4CEE6FDF552C48F3C1225994AE797B5C"
)

# ===== 清理缓存函数（新增）=====
clean_cache() {
    echo -e "\n\033[1;33m===== 清理系统缓存 =====\033[0m"
    
    # 清理APT缓存（三级清理机制）
    echo "1. 清理APT缓存..."
    apt-get clean
    apt-get autoclean
    apt-get autoremove -y

    # 清理临时文件
    echo "2. 清理临时文件"
    rm -rf /tmp/*
    rm -rf /var/tmp/*
}

# ===== 删除现有密钥和配置 =====
cleanup_system() {
    echo -e "\n\033[1;33m===== 清理现有配置 =====\033[0m"
    
    # 删除指定密钥ID（原脚本2逻辑）
    if [[ -f "$KEYRING_PATH" ]]; then
        for key_id in "${KEY_IDS[@]}"; do
            echo "移除密钥: $key_id"
            gpg --batch --no-default-keyring --keyring "$KEYRING_PATH" \
                --delete-keys "$key_id" 2>/dev/null || true
        done
    fi

    # 删除用户ID关联的密钥（原脚本1逻辑）
    if [[ -f "$KEYRING_PATH" ]]; then
        echo "移除用户ID关联密钥: $USER_ID"
        gpg --batch --no-default-keyring --keyring "$KEYRING_PATH" \
            --delete-keys "$USER_ID" 2>/dev/null || true
    fi

    # 删除密钥环文件
    echo "移除密钥环文件"
    rm -f "$KEYRING_PATH"

    # 删除仓库配置
    echo "移除仓库配置文件"
    rm -f "$SOURCE_LIST_PATH"

    # 更新包列表
    echo "清理APT缓存"
    apt-get update -qq

    # 调用缓存清理函数（新增）
    clean_cache

    echo -e "\n\033[1;32m✔ 所有密钥、仓库配置和系统缓存已成功移除\033[0m"
}

# ===== 主执行流程 =====
cleanup_system


