AhHui 修订了这个 Gist 3 months ago. 转到此修订
没有任何变更
AhHui 修订了这个 Gist 3 months ago. 转到此修订
没有任何变更
AhHui 修订了这个 Gist 3 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." | |
上一页
下一页