#!/bin/bash
# 1Panel 第三方应用商店同步脚本（轻量优化版）
# 仅同步应用，不执行镜像替换

# 启用严格模式：遇到错误、未定义变量、管道错误时立即退出
set -euo pipefail

# 设置字段分隔符，防止文件名含空格或换行符时出错
IFS=$'\n\t'

# 配置路径
GIT_REPO="https://cnb.cool/Liiiu/appstore"  # 第三方应用商店地址
TMP_DIR="/opt/1panel/resource/apps/local/appstore-localApps"
LOCAL_APPS_DIR="/opt/1panel/resource/apps/local"

# 确保脚本退出时自动清理临时目录（即使中途出错也会执行）
# trap 'rm -rf "$TMP_DIR"' EXIT
trap 'echo "🧹 清理临时目录: $TMP_DIR"; rm -rf "$TMP_DIR"' EXIT

# 开始克隆应用商店仓库
echo "📥 Cloning appstore repo..."
git clone "$GIT_REPO" "$TMP_DIR"

# 创建本地应用目录（如果不存在）
mkdir -p "$LOCAL_APPS_DIR"

# 遍历所有应用并同步到本地
for app_path in "$TMP_DIR/apps/"*; do
    # 跳过非目录项
    [ -d "$app_path" ] || continue

    app_name=$(basename "$app_path")
    local_app_path="$LOCAL_APPS_DIR/$app_name"

    echo "🔁 Updating app: $app_name"
    # 如果本地已存在同名应用，先删除
    [ -d "$local_app_path" ] && rm -rf "$local_app_path"
    # 复制新版本应用
    cp -r "$app_path" "$local_app_path"
done

echo "✅ Sync completed."