@echo off
chcp 65001 >nul

echo =======================================
echo 设置 Git 忽略规则
 echo =======================================
echo 此脚本将更新 .gitignore 文件，添加微信小程序项目中不需要上传到 Git 仓库的文件和文件夹

echo. 
echo 正在检查并更新 .gitignore 文件...

rem 检查 .gitignore 文件是否存在
if not exist ".gitignore" (
    echo 创建新的 .gitignore 文件...
    echo # Git 忽略规则 > .gitignore
    echo # 由 set-gitignore.bat 生成 >> .gitignore
    echo. >> .gitignore
)

rem 检查是否已包含 Windows 系统文件规则
findstr /c:"# Windows" .gitignore >nul
if %errorlevel% neq 0 (
    echo 添加 Windows 系统文件规则...
    echo. >> .gitignore
    echo # Windows >> .gitignore
    echo [Dd]esktop.ini >> .gitignore
    echo Thumbs.db >> .gitignore
    echo $RECYCLE.BIN/ >> .gitignore
    echo. >> .gitignore
)

rem 检查是否已包含 macOS 系统文件规则
findstr /c:"# macOS" .gitignore >nul
if %errorlevel% neq 0 (
    echo 添加 macOS 系统文件规则...
    echo # macOS >> .gitignore
    echo .DS_Store >> .gitignore
    echo .fseventsd >> .gitignore
    echo .Spotlight-V100 >> .gitignore
    echo .TemporaryItems >> .gitignore
    echo .Trashes >> .gitignore
    echo. >> .gitignore
)

rem 检查是否已包含 Node.js 依赖规则
findstr /c:"# Node.js" .gitignore >nul
if %errorlevel% neq 0 (
    echo 添加 Node.js 依赖规则...
    echo # Node.js >> .gitignore
    echo node_modules/ >> .gitignore
    echo. >> .gitignore
)

rem 检查是否已包含微信小程序相关规则
findstr /c:"# 微信小程序" .gitignore >nul
if %errorlevel% neq 0 (
    echo 添加微信小程序相关规则...
    echo # 微信小程序 >> .gitignore
    echo miniprogram_npm/ >> .gitignore
    echo project.private.config.json >> .gitignore
    echo. >> .gitignore
)

rem 检查是否已包含日志文件规则
findstr /c:"# 日志文件" .gitignore >nul
if %errorlevel% neq 0 (
    echo 添加日志文件规则...
    echo # 日志文件 >> .gitignore
    echo *.log >> .gitignore
    echo logs/ >> .gitignore
    echo. >> .gitignore
)

rem 检查是否已包含临时文件规则
findstr /c:"# 临时文件" .gitignore >nul
if %errorlevel% neq 0 (
    echo 添加临时文件规则...
    echo # 临时文件 >> .gitignore
    echo *.tmp >> .gitignore
    echo *.temp >> .gitignore
    echo temp/ >> .gitignore
    echo. >> .gitignore
)

echo. 
echo =======================================
echo 操作完成！
echo =======================================
echo .gitignore 文件已更新，包含以下忽略规则：
echo 1. Windows 系统文件
 echo 2. macOS 系统文件
 echo 3. Node.js 依赖目录
 echo 4. 微信小程序编译生成目录
 echo 5. 微信小程序私有配置文件
 echo 6. 日志文件
 echo 7. 临时文件

echo. 
echo 这些文件和文件夹将不会被上传到 Git 仓库，有助于保持仓库整洁并减少仓库大小。
echo. 
echo 按任意键退出...
pause >nul