#!/bin/bash

# 检查参数
if [ "$#" -ne 3 ]; then
    echo "用法: $0 <dir1> <dir2> <output.tar.gz>"
    exit 1
fi

dir1="$1"
dir2="$2"
output="$3"

# 确保目录存在
if [ ! -d "$dir1" ] || [ ! -d "$dir2" ]; then
    echo "错误：目录不存在"
    exit 1
fi

# 创建临时目录
tmp_dir=$(mktemp -d)
trap "rm -rf $tmp_dir" EXIT

# 使用 rsync 找出 dir2 中新增或修改的文件
rsync -av --compare-dest="$dir1" "$dir2"/ "$tmp_dir"/ > /dev/null

# 如果没有差异，提示并退出
if [ -z "$(ls -A "$tmp_dir")" ]; then
    echo "两个目录内容一致，无需打包。"
    exit 0
fi

# 打包压缩
tar -czf "$output" -C "$tmp_dir" .

echo "✅ 差异文件已打包为：$output"
