#!/bin/bash set -eu DATA_ROOT="${TRIM_PKGVAR:-}" ENABLED="${wizard_direct_access:-false}" PORT="${wizard_direct_port:-8765}" unset wizard_direct_access wizard_direct_port 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 未提供应用数据目录。" case "$ENABLED" in true|false) ;; *) fail "ImageFind 配置失败:直接访问开关无效。" ;; esac case "$PORT" in ''|*[!0-9]*) fail "ImageFind 配置失败:端口必须是数字。" ;; esac [ "$PORT" -ge 1 ] && [ "$PORT" -le 65535 ] || fail "ImageFind 配置失败:端口必须在 1–65535 之间。" mkdir -p "$DATA_ROOT" ACCESS_TEMP="$DATA_ROOT/access.json.tmp.$$" trap 'rm -f "$ACCESS_TEMP"' EXIT printf '{"direct_access":{"enabled":%s,"port":%s}}\n' "$ENABLED" "$PORT" >"$ACCESS_TEMP" chmod 0600 "$ACCESS_TEMP" mv "$ACCESS_TEMP" "$DATA_ROOT/access.json" trap - EXIT