#!/bin/bash

# 检查工具
if ! command -v unzip &> /dev/null || ! command -v rar &> /dev/null; then
    echo "错误: 请安装 unzip 和 rar (sudo apt install unzip rar)"
    exit 1
fi

for zip_file in *.zip; do
    [ -e "$zip_file" ] || continue
    base_name="${zip_file%.zip}"
    echo "正在转换: $zip_file ..."

    # 修正后的 mktemp 用法
    tmp_dir=$(mktemp -d ./conv_XXXXXX)

    if unzip -q "$zip_file" -d "$tmp_dir"; then
        # -ep1 确保压缩包内路径从临时文件夹内部开始
        if rar a -r -ep1 "${base_name}.rar" "$tmp_dir/"* > /dev/null; then
            echo "✅ 成功: ${base_name}.rar"
        else
            echo "❌ RAR 压缩失败"
        fi
    else
        echo "❌ ZIP 解压失败"
    fi

    rm -rf "$tmp_dir"
done
echo "--- 任务完成 ---"
