#!/bin/bash

# 安装指定包的函数
install_package() {
    local package_name=$1
    
    # 等待用户输入，确认是否安装指定包
    echo ""
    echo "是否要安装 $package_name 包？(y/Y/yes/YES 确认)"
    read -r user_input

    # 将输入转换为小写进行比较
    user_input_lower=$(echo "$user_input" | tr '[:upper:]' '[:lower:]')

    if [[ "$user_input_lower" == "y" || "$user_input_lower" == "yes" ]]; then
        echo "开始安装 $package_name..."
        yum install -y "$package_name"
        if [ $? -eq 0 ]; then
            echo "$package_name 安装成功"
        else
            echo "$package_name 安装失败"
            exit 1
        fi
    else
        echo "跳过安装 $package_name"
    fi
}

# 安装pip包的函数
install_pip_package() {
    local package_url=$1
    local package_name=$(basename "$package_url" | cut -d'-' -f1)
    
    # 等待用户输入，确认是否安装指定pip包
    echo ""
    echo "是否要安装 pip 包 $package_name？(y/Y/yes/YES 确认)"
    read -r user_input

    # 将输入转换为小写进行比较
    user_input_lower=$(echo "$user_input" | tr '[:upper:]' '[:lower:]')

    if [[ "$user_input_lower" == "y" || "$user_input_lower" == "yes" ]]; then
        # 检查是否已安装 python3-pip，如果没有则安装
        if ! command -v pip3 &> /dev/null; then
            echo "未检测到 pip3，开始安装 python3-pip..."
            yum install -y python3-pip
            if [ $? -ne 0 ]; then
                echo "python3-pip 安装失败"
                exit 1
            fi
            echo "python3-pip 安装完成"
        else
            echo "开始安装 pip 包: $package_name..."
        fi
        
        
        pip3 install "$package_url"
        if [ $? -eq 0 ]; then
            echo "pip 包 $package_name 安装成功"
        else
            echo "pip 包 $package_name 安装失败"
            exit 1
        fi
    else
        echo "跳过安装 pip 包 $package_name"
    fi
}


# 获取系统版本
VERSION=$(grep -oP 'VERSION_ID="\K\d+' /etc/os-release | cut -c1-4)
AGIROS_VERSION=2506

echo "检测到系统版本: $VERSION"

# 根据系统版本设置相应的变量
if [ $VERSION -ge 24 ]; then
  OS_VERSION=2403lts
  echo "发现openEuler 24.03系统，开始生成 /etc/yum.repos.d/agiros.repo"
elif [ $VERSION -eq 22 ]; then
  OS_VERSION=2403lts
  echo "发现openEuler 22.03系统，按24.03版本安装，并生成 /etc/yum.repos.d/agiros.repo"
else
  echo "不支持的openEuler版本: $VERSION"
  exit 1
fi

# 检查文件/etc/yum.repos.d/agiros.repo是否存在，如果存在则提示
# 检查文件是否存在
if [ -f /etc/yum.repos.d/agiros.repo ]; then
  echo "提示: /etc/yum.repos.d/agiros.repo 文件已存在，强制替换"
fi

# 生成 repo 文件
echo "正在生成 repo 文件..."
cat > /etc/yum.repos.d/agiros.repo <<EOF
[agiros-loong-release]
name=agiros-loong-release
baseurl=http://repo.agiros.org.cn/yumrepo/agiros/openeuler${OS_VERSION}/${AGIROS_VERSION}/\$basearch/release
enabled=1
gpgcheck=0

[agiros-loong-3-party]
name=agiros-loong-3-party
baseurl=http://repo.agiros.org.cn/yumrepo/agiros/openeuler${OS_VERSION}/${AGIROS_VERSION}/\$basearch/3-party
enabled=1
gpgcheck=0
EOF

echo "repo 文件已生成完成"
echo "生成的文件内容如下："
cat /etc/yum.repos.d/agiros.repo

# 更新 yum 缓存
echo "正在更新 yum 缓存..."
yum clean all
yum makecache -y

# 调用函数安装pip包
install_pip_package "http://repo.agiros.org.cn/yumrepo/agiros/agirosdep/agirosdep-0.25.1-py3-none-any.whl"

# 调用函数安装包
install_package "agiros-loong-ros-base"

echo "yum 缓存已更新完成，可以开始安装软件包 yum install -y <package>"

