feat: add ImageFind application and release pipelines
This commit is contained in:
Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
set -eu
|
||||
|
||||
DATA_ROOT="${TRIM_PKGVAR:-}"
|
||||
APP_ROOT="${TRIM_APPDEST:-}"
|
||||
COMMAND_ROOT=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||
# Password changes belong to ImageFind's authenticated account page. Older
|
||||
# upgrade wizards exported these variables, sometimes as placeholder strings
|
||||
# when both fields were left blank. Deliberately ignore them so a package
|
||||
# update can never fail after files have already been replaced.
|
||||
unset wizard_admin_password wizard_admin_password_confirm
|
||||
|
||||
fail() {
|
||||
MESSAGE="$1"
|
||||
printf '%s\n' "$MESSAGE" >&2
|
||||
if [ -n "${TRIM_TEMP_LOGFILE:-}" ]; then
|
||||
printf '%s\n' "$MESSAGE" >>"$TRIM_TEMP_LOGFILE" 2>/dev/null || true
|
||||
fi
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -n "$DATA_ROOT" ] || fail "ImageFind 升级失败:fnOS 未提供应用数据目录。"
|
||||
[ -n "$APP_ROOT" ] || fail "ImageFind 升级失败:fnOS 未提供应用安装目录。"
|
||||
umask 077
|
||||
mkdir -p "$DATA_ROOT/data" "$DATA_ROOT/cache"
|
||||
if [ ! -f "$DATA_ROOT/.imagefind-data-root" ]; then
|
||||
printf '%s\n' 'imagefind-data-v1' >"$DATA_ROOT/.imagefind-data-root"
|
||||
fi
|
||||
if [ ! -f "$DATA_ROOT/access.json" ]; then
|
||||
ACCESS_TEMP="$DATA_ROOT/access.json.tmp.$$"
|
||||
printf '%s\n' '{"direct_access":{"enabled":true,"port":8765}}' >"$ACCESS_TEMP"
|
||||
chmod 0600 "$ACCESS_TEMP"
|
||||
mv "$ACCESS_TEMP" "$DATA_ROOT/access.json"
|
||||
fi
|
||||
|
||||
if ! TRIM_APPDEST="$APP_ROOT" TRIM_PKGVAR="$DATA_ROOT" "$COMMAND_ROOT/runtime_bootstrap" \
|
||||
>>"${TRIM_TEMP_LOGFILE:-/dev/null}" 2>&1; then
|
||||
fail "ImageFind 升级失败:Python 3.12 核心运行环境安装失败。"
|
||||
fi
|
||||
|
||||
if [ -n "${TRIM_TEMP_LOGFILE:-}" ]; then
|
||||
printf '%s\n' "ImageFind 升级数据检查完成,现有数据库、配置和管理员密码均已保留。" \
|
||||
>>"$TRIM_TEMP_LOGFILE" 2>/dev/null || true
|
||||
fi
|
||||
Reference in New Issue
Block a user