feat: add one-command plugin deployment and removal
This commit is contained in:
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
REPO_URL=${PLUGIN_REPO_URL:-https://git.awaioi.com/awaioi/sub2api-add.git}
|
||||
SOURCE_DIR=${PLUGIN_SOURCE_DIR:-/opt/sub2api-add}
|
||||
REF=${PLUGIN_REF:-main}
|
||||
|
||||
die() { printf '错误:%s\n' "$*" >&2; exit 1; }
|
||||
[[ $EUID -eq 0 ]] || die "请使用 root 或 sudo 运行"
|
||||
command -v git >/dev/null 2>&1 || die "缺少 git"
|
||||
|
||||
if [[ -e "$SOURCE_DIR" && ! -d "$SOURCE_DIR/.git" ]]; then
|
||||
die "$SOURCE_DIR 已存在但不是本插件仓库;请设置 PLUGIN_SOURCE_DIR"
|
||||
fi
|
||||
|
||||
if [[ -d "$SOURCE_DIR/.git" ]]; then
|
||||
if [[ -n "$(git -C "$SOURCE_DIR" status --porcelain)" ]]; then
|
||||
die "$SOURCE_DIR 有未提交修改,先清理后再升级"
|
||||
fi
|
||||
git -C "$SOURCE_DIR" fetch --depth 1 origin "$REF"
|
||||
git -C "$SOURCE_DIR" checkout --force FETCH_HEAD
|
||||
else
|
||||
git clone --depth 1 --branch "$REF" "$REPO_URL" "$SOURCE_DIR"
|
||||
fi
|
||||
|
||||
exec "$SOURCE_DIR/scripts/install-local.sh" "$@"
|
||||
Reference in New Issue
Block a user