wojack عدّل هذا المقطع 1 month ago. الانتقال إلى التعديل
1 file changed, 42 insertions
1panel-appstore.sh(تم إنشاء الملف)
| @@ -0,0 +1,42 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | # 1Panel 第三方应用商店同步脚本(轻量优化版) | |
| 3 | + | # 仅同步应用,不执行镜像替换 | |
| 4 | + | ||
| 5 | + | # 启用严格模式:遇到错误、未定义变量、管道错误时立即退出 | |
| 6 | + | set -euo pipefail | |
| 7 | + | ||
| 8 | + | # 设置字段分隔符,防止文件名含空格或换行符时出错 | |
| 9 | + | IFS=$'\n\t' | |
| 10 | + | ||
| 11 | + | # 配置路径 | |
| 12 | + | GIT_REPO="https://cnb.cool/Liiiu/appstore" # 第三方应用商店地址 | |
| 13 | + | TMP_DIR="/opt/1panel/resource/apps/local/appstore-localApps" | |
| 14 | + | LOCAL_APPS_DIR="/opt/1panel/resource/apps/local" | |
| 15 | + | ||
| 16 | + | # 确保脚本退出时自动清理临时目录(即使中途出错也会执行) | |
| 17 | + | # trap 'rm -rf "$TMP_DIR"' EXIT | |
| 18 | + | trap 'echo "🧹 清理临时目录: $TMP_DIR"; rm -rf "$TMP_DIR"' EXIT | |
| 19 | + | ||
| 20 | + | # 开始克隆应用商店仓库 | |
| 21 | + | echo "📥 Cloning appstore repo..." | |
| 22 | + | git clone "$GIT_REPO" "$TMP_DIR" | |
| 23 | + | ||
| 24 | + | # 创建本地应用目录(如果不存在) | |
| 25 | + | mkdir -p "$LOCAL_APPS_DIR" | |
| 26 | + | ||
| 27 | + | # 遍历所有应用并同步到本地 | |
| 28 | + | for app_path in "$TMP_DIR/apps/"*; do | |
| 29 | + | # 跳过非目录项 | |
| 30 | + | [ -d "$app_path" ] || continue | |
| 31 | + | ||
| 32 | + | app_name=$(basename "$app_path") | |
| 33 | + | local_app_path="$LOCAL_APPS_DIR/$app_name" | |
| 34 | + | ||
| 35 | + | echo "🔁 Updating app: $app_name" | |
| 36 | + | # 如果本地已存在同名应用,先删除 | |
| 37 | + | [ -d "$local_app_path" ] && rm -rf "$local_app_path" | |
| 38 | + | # 复制新版本应用 | |
| 39 | + | cp -r "$app_path" "$local_app_path" | |
| 40 | + | done | |
| 41 | + | ||
| 42 | + | echo "✅ Sync completed." | |
wojack عدّل هذا المقطع 10 months ago. الانتقال إلى التعديل
لا توجد تغييرات
AhHui عدّل هذا المقطع 10 months ago. الانتقال إلى التعديل
لا توجد تغييرات
AhHui عدّل هذا المقطع 10 months ago. الانتقال إلى التعديل
لا توجد تغييرات
AhHui عدّل هذا المقطع 10 months ago. الانتقال إلى التعديل
1 file changed, 42 insertions
sync-1panel-appstore.sh(تم إنشاء الملف)
| @@ -0,0 +1,42 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | # 1Panel 第三方应用商店同步脚本(轻量优化版) | |
| 3 | + | # 仅同步应用,不执行镜像替换 | |
| 4 | + | ||
| 5 | + | # 启用严格模式:遇到错误、未定义变量、管道错误时立即退出 | |
| 6 | + | set -euo pipefail | |
| 7 | + | ||
| 8 | + | # 设置字段分隔符,防止文件名含空格或换行符时出错 | |
| 9 | + | IFS=$'\n\t' | |
| 10 | + | ||
| 11 | + | # 配置路径 | |
| 12 | + | GIT_REPO="https://cnb.cool/gyhwd.top/1panel-appstore" # 第三方应用商店地址 | |
| 13 | + | TMP_DIR="/opt/1panel/resource/apps/local/appstore-localApps" | |
| 14 | + | LOCAL_APPS_DIR="/opt/1panel/resource/apps/local" | |
| 15 | + | ||
| 16 | + | # 确保脚本退出时自动清理临时目录(即使中途出错也会执行) | |
| 17 | + | # trap 'rm -rf "$TMP_DIR"' EXIT | |
| 18 | + | trap 'echo "🧹 清理临时目录: $TMP_DIR"; rm -rf "$TMP_DIR"' EXIT | |
| 19 | + | ||
| 20 | + | # 开始克隆应用商店仓库 | |
| 21 | + | echo "📥 Cloning appstore repo..." | |
| 22 | + | git clone "$GIT_REPO" "$TMP_DIR" | |
| 23 | + | ||
| 24 | + | # 创建本地应用目录(如果不存在) | |
| 25 | + | mkdir -p "$LOCAL_APPS_DIR" | |
| 26 | + | ||
| 27 | + | # 遍历所有应用并同步到本地 | |
| 28 | + | for app_path in "$TMP_DIR/apps/"*; do | |
| 29 | + | # 跳过非目录项 | |
| 30 | + | [ -d "$app_path" ] || continue | |
| 31 | + | ||
| 32 | + | app_name=$(basename "$app_path") | |
| 33 | + | local_app_path="$LOCAL_APPS_DIR/$app_name" | |
| 34 | + | ||
| 35 | + | echo "🔁 Updating app: $app_name" | |
| 36 | + | # 如果本地已存在同名应用,先删除 | |
| 37 | + | [ -d "$local_app_path" ] && rm -rf "$local_app_path" | |
| 38 | + | # 复制新版本应用 | |
| 39 | + | cp -r "$app_path" "$local_app_path" | |
| 40 | + | done | |
| 41 | + | ||
| 42 | + | echo "✅ Sync completed." | |