#!/bin/bash

# 随记 Web 前端部署脚本
# 功能：构建 Vue 项目并部署到服务器指定目录

set -e  # 遇到错误立即退出

# 配置
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
WEB_DIR="${SCRIPT_DIR}/web"
SOURCE_DIR="${WEB_DIR}/dist"
TARGET_DIR="/home/yuany3721/webpages/note"

# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${YELLOW}========================================${NC}"
echo -e "${YELLOW}  开始部署 随记 Web 前端${NC}"
echo -e "${YELLOW}========================================${NC}"
echo ""

# 检查 web 目录是否存在
if [ ! -d "$WEB_DIR" ]; then
    echo -e "${RED}错误：找不到 web 目录: $WEB_DIR${NC}"
    exit 1
fi

# 切换到 web 目录
cd "$WEB_DIR"

# 检查 package.json
if [ ! -f "package.json" ]; then
    echo -e "${RED}错误：无法找到 package.json${NC}"
    exit 1
fi

# 步骤 1: 构建项目
echo -e "${YELLOW}[1/3] 正在构建项目...${NC}"
npm run build

if [ $? -ne 0 ]; then
    echo -e "${RED}构建失败！${NC}"
    exit 1
fi

echo -e "${GREEN}✓ 构建成功${NC}"
echo ""

# 步骤 2: 检查源目录是否存在
if [ ! -d "$SOURCE_DIR" ]; then
    echo -e "${RED}错误：构建输出目录不存在: $SOURCE_DIR${NC}"
    exit 1
fi

# 步骤 3: 清空目标目录
echo -e "${YELLOW}[2/3] 正在清空目标目录...${NC}"
if [ -d "$TARGET_DIR" ]; then
    rm -rf "${TARGET_DIR:?}/"*
    echo -e "${GREEN}✓ 已清空: $TARGET_DIR${NC}"
else
    echo -e "${YELLOW}目标目录不存在，正在创建...${NC}"
    mkdir -p "$TARGET_DIR"
    echo -e "${GREEN}✓ 已创建: $TARGET_DIR${NC}"
fi
echo ""

# 步骤 4: 复制文件
echo -e "${YELLOW}[3/3] 正在复制文件到目标目录...${NC}"
cp -r "${SOURCE_DIR}/"* "$TARGET_DIR/"

if [ $? -eq 0 ]; then
    echo -e "${GREEN}✓ 文件复制成功${NC}"
else
    echo -e "${RED}文件复制失败！${NC}"
    exit 1
fi

echo ""
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}  部署完成！${NC}"
echo -e "${GREEN}========================================${NC}"
echo -e "目标目录: ${TARGET_DIR}"

