#!/bin/bash

# 部署脚本用于将项目部署到远程服务器
# 配置信息
REMOTE_HOST="192.168.0.95"
REMOTE_USER="root"
REMOTE_PASSWORD="aiotagro"
REMOTE_DIR="/data/java/aiotagro"

# 本地项目路径
LOCAL_PROJECT_DIR="E:/vue/aiotagro-mini"

echo "开始部署项目到远程服务器..."

# 打包项目 (需要本地安装Maven)
echo "正在打包项目..."
cd "$LOCAL_PROJECT_DIR"
mvn clean package -Dmaven.test.skip=true

if [ $? -ne 0 ]; then
    echo "项目打包失败，请确保已安装Maven并配置环境变量"
    exit 1
fi

# 获取打包后的jar文件路径
JAR_FILE=$(find aagro-server/target -name "*.jar" | head -n 1)

if [ -z "$JAR_FILE" ]; then
    echo "未找到打包后的jar文件"
    exit 1
fi

echo "找到jar文件: $JAR_FILE"

# 创建远程目录
echo "创建远程目录..."
sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "mkdir -p $REMOTE_DIR"

# 上传jar文件和配置文件
echo "上传文件到远程服务器..."
sshpass -p "$REMOTE_PASSWORD" scp "$JAR_FILE" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/"
sshpass -p "$REMOTE_PASSWORD" scp "aagro-server/src/main/resources/application-prod.yaml" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/"

# 上传启动脚本
echo "上传启动脚本..."
sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "cat > $REMOTE_DIR/start.sh << 'EOF'
#!/bin/bash
cd /data/java/aiotagro
nohup java -jar *.jar --spring.profiles.active=prod > app.log 2>&1 &
echo \"应用已启动\"
EOF"

sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "chmod +x $REMOTE_DIR/start.sh"

# 启动应用
echo "启动应用..."
sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "cd $REMOTE_DIR && ./start.sh"

echo "部署完成！"