#!/bin/bash
# wget -O install-xianyu.sh http://selfdownload.zhinianboke.com/shell/other/installXy/install-xianyu.sh && chmod -R 777 install-xianyu.sh && bash install-xianyu.sh

changeYum() {
	if grep -q "CentOS Linux release 8" /etc/*release*; then
		mv /etc/yum.repos.d/CentOS-Linux-BaseOS.repo /etc/yum.repos.d/CentOS-Linux-BaseOS.repo.backup
		mv /etc/yum.repos.d/CentOS-Linux-AppStream.repo /etc/yum.repos.d/CentOS-Linux-AppStream.repo.backup
		
		curl -o /etc/yum.repos.d/CentOS-Linux-BaseOS.repo http://mirrors.aliyun.com/repo/Centos-8.repo
		curl -o /etc/yum.repos.d/CentOS-Linux-AppStream.repo http://mirrors.aliyun.com/repo/Centos-8.repo
	else
		mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
		curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
	fi
	yum clean all
	yum makecache
	yum -y update
    yum install -y unzip
}

installDockerCompose() {
    mkdir -p /usr/local/bin && wget -O docker-compose http://selfdownload.zhinianboke.com/file/website/docker/docker-compose && mv docker-compose /usr/local/bin && chmod +x /usr/local/bin/docker-compose && ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose && docker-compose --version
}

installXy() {
    cd ~
    
    # 检查并停止旧容器
    if docker ps -a | grep -q xianyu-auto-reply; then
        echo "检测到旧容器，正在停止并删除..."
        docker stop xianyu-auto-reply 2>/dev/null || true
        docker rm xianyu-auto-reply 2>/dev/null || true
        echo "旧容器已删除"
    fi
    
    # 删除旧镜像
    if docker images | grep -q "xianyu-auto-reply"; then
        echo "正在删除旧镜像..."
        docker rmi $(docker images --filter "reference=*xianyu-auto-reply*" -q) 2>/dev/null || true
        echo "旧镜像已删除"
    fi
    
    # 创建数据目录并启动新容器
    mkdir -p xianyu-auto-reply
    echo "正在拉取最新镜像并启动容器..."
    docker run -d -p 8080:8080 -v $PWD/xianyu-auto-reply/:/app/data/ --restart always --name xianyu-auto-reply registry.cn-shanghai.aliyuncs.com/zhinian-software/xianyu-auto-reply:latest
    
    echo "================================"
    echo "✅ 安装成功！"
    echo "📝 访问地址: http://您的IP:8080"
    echo "⚠️  如无法访问，请检查："
    echo "   1. 安全组是否放行 8080 端口"
    echo "   2. 防火墙规则是否正确"
    echo "================================"
}

# 安装docker
installDocker() {
	# 检查Docker是否安装
    if command -v docker >/dev/null 2>&1; then
        echo "Docker已安装"
        docker --version
    else
        echo "Docker未安装，开始安装docker"
        if [[ $system == *"CentOS"* ]]; then
    	    yum install -y yum-utils device-mapper-persistent-data lvm2
            yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

            yum install -y docker-ce docker-ce-cli containerd.io
            systemctl enable docker
            systemctl start docker
        elif [[ $system == *"Debian"* ]]; then
            apt install -y docker.io
		else
			apt install -y docker.io
		fi
        docker --version
    fi
    
    if command -v docker-compose >/dev/null 2>&1; then
		echo "docker-compose已安装"
		docker-compose -v
	else
	    echo "docker-compose未安装，开始安装"
        installDockerCompose
	fi
}



system=`lsb_release -a 2> /dev/null | grep "Distributor ID:" | cut -d ":" -f2`
if [ -z "$system" ]; then
    if grep -q "CentOS Stream" /etc/os-release; then
        system="CentOSStream"
    elif grep -q "CentOS" /etc/os-release; then
        system="CentOS"
    elif grep -q "Debian" /etc/os-release; then
        system="Debian"
    elif grep -q "Ubuntu" /etc/os-release; then
        system="Ubuntu"
    fi
fi
if [[ $system == *"CentOS"* ]]; then
    echo "检测到系统为CentOS"
elif [[ $system == *"Ubuntu"* ]]; then
    echo "检测到系统为Ubuntu"
    apt update -y
    apt install -y unzip
elif [[ $system == *"Debian"* ]]; then
    echo "检测到系统为Debian"
    apt update -y
    apt install -y unzip
else
    echo "该脚本仅支持CentOS和Ubuntu系统,Debian系统"
	exit 0
fi



if [[ $system == *"CentOSStream"* ]]; then
	echo "检测到系统为CentOS Stream"
	yum install -y unzip
elif [[ $system == *"CentOS"* ]]; then
    changeYum
fi



installDocker
installXy

