#!/bin/bash
############################################################
#本脚本用于Rocky8.6、Ubuntu 22.04 24.04配置阿里云仓库        #
#包括BaseOS AppStream extras                              #    
############################################################

  # 加载文件
. /etc/os-release


  # Rocky/CentOS函数
function_Rocky/CentOS_yum() {

  # 定义原文件目录及备份文件夹变量
SRC_DIR="/etc/yum.repos.d/"
BACKUP_DIR="$SRC_DIR/backup"

  # 检查备份目录是否存在，如果不存在则创建它
if [ ! -d "$BACKUP_DIR" ]; then
  mkdir -p "$BACKUP_DIR"
  #移动.repo后缀文件到backup
  mv $SRC_DIR*.repo $BACKUP_DIR
    else
      mv $SRC_DIR*.repo $BACKUP_DIR
fi
echo "原仓库已移动到 $BACKUP_DIR:"
ls "$BACKUP_DIR"


cat >/etc/yum.repos.d/aliyun.repo <<EOF
[BaseOS]
baseurl=https://dl.rockylinux.org/vault/rocky/8.6/BaseOS/x86_64/os/
name=alinyun BaseOS
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-rockyofficial




[AppStream]
baseurl=https://dl.rockylinux.org/vault/rocky/8.6/AppStream/x86_64/os/
name=aliyun AppStream
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-rockyofficial






[extras]
baseurl=https://dl.rockylinux.org/vault/rocky/8.6/extras/x86_64/os/
name=aliyun extras
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/rockylinux/RPM-GPG-KEY-rockyofficial




[epel]
baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/
name=aliyun epel
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-8



EOF
yum makecache&&echo "源仓库配置成功"||echo "源仓库配置失败，请检查源仓库地址"
yum repolist
}



  # Ubuntu22.04函数
function_Ubuntu22.04.4_LTS_Jammy_Jellyfish() {
    # 定义原文件目录及备份文件夹变量
SRC_DIR="/etc/apt/"
BACKUP_DIR="$SRC_DIR/backup"

  # 检查备份目录是否存在，如果不存在则创建它
if [ ! -d "$BACKUP_DIR" ]; then
  mkdir -p "$BACKUP_DIR"
  #移动.repo后缀文件到backup
  mv $SRC_DIR*.list $BACKUP_DIR
    else
      mv $SRC_DIR*.list $BACKUP_DIR
fi
echo "原仓库已移动到 $BACKUP_DIR:"
ls "$BACKUP_DIR"

cat >/etc/apt/sources.list <<EOF
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

EOF
apt update&&echo "源仓库配置成功"||echo "源仓库配置失败，请检查源仓库地址"



}

  # Ubuntu24.04函数
function_Ubuntu24.04_LTS_Noble_Numbat() {
      # 定义原文件目录及备份文件夹变量
SRC_DIR="/etc/apt/"
BACKUP_DIR="$SRC_DIR/backup"

  # 检查备份目录是否存在，如果不存在则创建它
if [ ! -d "$BACKUP_DIR" ]; then
  mkdir -p "$BACKUP_DIR"
  #移动.repo后缀文件到backup
  mv $SRC_DIR*.list $BACKUP_DIR
    else
      mv $SRC_DIR*.list $BACKUP_DIR
fi
echo "原仓库已移动到 $BACKUP_DIR:"
ls "$BACKUP_DIR"

cat >/etc/apt/sources.list <<EOF
deb https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse


EOF
apt update&&echo "源仓库配置成功"||echo "源仓库配置失败，请检查源仓库地址"


}



if [ "$NAME" = "Rocky Linux" -o "$NAME" = "CentOS Linux" ]; then
  function_Rocky/CentOS_yum
    elif [ "$NAME" = "Ubuntu" ]; then
      if [ "$VERSION" = "22.04.4 LTS (Jammy Jellyfish)" ]; then
        function_Ubuntu22.04.4_LTS_Jammy_Jellyfish
        elif [ "$VERSION" = "24.04 LTS (Noble Numbat)" ]; then
          function_Ubuntu24.04_LTS_Noble_Numbat
          else 
            echo 不支持此ubuntu版本，请联系作者
      fi
   else
   echo 不支持此Linux版本，请联系作者   
      
      
fi

