#!/bin/bash

# 替换 CentOS 7 YUM 源为阿里云镜像
# 作者：AiYun
# 适用系统：CentOS Linux 7

set -e  # 遇错即停

echo ">>> 检查系统版本..."
if ! grep -q "CentOS Linux release 7" /etc/redhat-release; then
    echo "❌ 错误：此脚本仅适用于 CentOS 7。"
    echo "当前系统：$(cat /etc/redhat-release)"
    exit 1
fi

echo "✅ 确认为 CentOS 7，开始替换源..."

# 1. 创建备份目录
BACKUP_DIR="/etc/yum.repos.d/backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"

# 2. 备份原有 repo 文件
echo ">>> 备份原有 repo 文件到 $BACKUP_DIR ..."
mv /etc/yum.repos.d/*.repo "$BACKUP_DIR/" 2>/dev/null || echo "⚠️ 无原有 repo 文件，跳过备份。"

# 3. 下载阿里云 CentOS 7 源
echo ">>> 下载阿里云 CentOS Base 源..."
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

echo ">>> 下载阿里云 EPEL 源..."
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

# 4. 清理并生成缓存
echo ">>> 清理 YUM 缓存..."
yum clean all >/dev/null 2>&1

echo ">>> 生成新缓存..."
yum makecache >/dev/null 2>&1

# 5. 验证
echo ">>> 验证仓库列表（显示前5行）..."
yum repolist | head -n 5

echo ""
echo "✅ 阿里云 YUM 源替换完成！"
echo "备份文件位置：$BACKUP_DIR"
echo "你可以使用 'yum install xxx' 测试速度。"