#!/bin/bash

# 颜色定义
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
BLUE='\033[34m'
RESET='\033[0m'

# 日志函数
log() {
    local level=$1
    local msg=$2
    case $level in
        INFO)    echo -e "${BLUE}[INFO]${RESET} $msg" ;;
        SUCCESS) echo -e "${GREEN}[SUCCESS]${RESET} $msg" ;;
        ERROR)   echo -e "${RED}[ERROR]${RESET} $msg" ;;
        WARNING) echo -e "${YELLOW}[WARNING]${RESET} $msg" ;;
    esac
}

# 检查系统包管理工具
if command -v yum &> /dev/null; then
    log INFO "检测到系统使用 yum 包管理工具。"
    # 手动指定可能的旧版本 OpenSSL 包名
    old_openssl_packages=(
        "openssl"
        "openssl-devel"
        "openssl-libs"
    )
    packages_to_remove=""
    for package in "${old_openssl_packages[@]}"; do
        version=$(yum list installed "$package" 2>/dev/null | grep -v 1.1.1 | awk '{print $2}')
        if [ -n "$version" ]; then
            packages_to_remove="$packages_to_remove $package"
        fi
    done
    if [ -n "$packages_to_remove" ]; then
        log INFO "找到旧版本 OpenSSL 包：$packages_to_remove"
        if sudo yum remove -y $packages_to_remove; then
            log SUCCESS "旧版本 OpenSSL 包已成功删除。"
        else
            log ERROR "删除旧版本 OpenSSL 包时出错。"
        fi
    else
        log INFO "未找到旧版本 OpenSSL 包。"
    fi
elif command -v apt-get &> /dev/null; then
    log INFO "检测到系统使用 apt-get 包管理工具。"
    # 手动指定可能的旧版本 OpenSSL 包名
    old_openssl_packages=(
        "openssl"
        "libssl-dev"
        "libssl1.0.0"  # 示例旧版本库包，可根据实际调整
    )
    packages_to_remove=""
    for package in "${old_openssl_packages[@]}"; do
        version=$(dpkg -l "$package" 2>/dev/null | grep -v 1.1.1 | awk '{print $3}')
        if [ -n "$version" ]; then
            packages_to_remove="$packages_to_remove $package"
        fi
    done
    if [ -n "$packages_to_remove" ]; then
        log INFO "找到旧版本 OpenSSL 包：$packages_to_remove"
        if sudo apt-get remove -y $packages_to_remove; then
            log SUCCESS "旧版本 OpenSSL 包已成功删除。"
        else
            log ERROR "删除旧版本 OpenSSL 包时出错。"
        fi
    else
        log INFO "未找到旧版本 OpenSSL 包。"
    fi
else
    log ERROR "未检测到支持的包管理工具（yum 或 apt-get），无法删除旧版本 OpenSSL。"
fi
    