27 lines
896 B
Bash
Executable File
27 lines
896 B
Bash
Executable File
#!/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" "$@"
|