#!/bin/bash

# 检查传入参数数量
if [ $# -ne 2 ]; then
    echo "用法: $0 <dir1> <dir2>"
    exit 1
fi

dir1="$1"
dir2="$2"
source_dir="h5-v100"

# 检查源目录是否存在
if [ ! -d "$source_dir" ]; then
    echo "错误: 源目录 '$source_dir' 不存在"
    exit 1
fi

# 检查dir1是否存在
if [ ! -d "$dir1" ] && [ ! -e "$dir1" ]; then
    echo "错误: 目录 '$dir1' 不存在"
    exit 1
fi

# 如果dir1和dir2不同名，重命名dir1为dir2
if [ "$dir1" != "$dir2" ]; then
    if [ -e "$dir2" ]; then
        echo "错误: 目标 '$dir2' 已存在，无法重命名"
        exit 1
    fi
    echo "正在将 '$dir1' 重命名为 '$dir2'..."
    mv "$dir1" "$dir2"
else
    echo "注意: dir1 和 dir2 同名，跳过重命名步骤"
fi

# 确保dir2目录存在
if [ ! -d "$dir2" ]; then
    echo "正在创建目录 '$dir2'..."
    mkdir -p "$dir2"
fi

# 使用rsync同步h5-v100到dir2
# -r: 递归同步
# -u: 仅更新（目标中较新的文件不覆盖）
# -t: 保留修改时间
# --ignore-existing: 跳过目标已存在的文件
# --update: 仅当源文件比目标文件新时才复制
echo "正在同步 '$source_dir' 到 '$dir2'..."
rsync -rtu "$source_dir/" "$dir2/" 2>/dev/null

# 使用另一种方法确保完全按照需求同步
# 这种方式会添加源目录有而目标目录没有的文件，但不会删除目标目录独有的文件
rsync -av --ignore-existing "$source_dir/" "$dir2/" 2>/dev/null

# 更新两边都有的文件（源目录中较新的文件）
rsync -av --update "$source_dir/" "$dir2/" 2>/dev/null

echo "同步完成!"
echo "源目录 '$source_dir' 中的文件已同步到 '$dir2'"