#!/bin/bash
# 安装后准备数据目录、data-key，并持久化用户选择的服务端口
log_fail() {
  if [ -n "${TRIM_TEMP_LOGFILE:-}" ]; then
    echo "$1" >"$TRIM_TEMP_LOGFILE"
  fi
  echo "$1" >&2
}

normalize_port() {
  local p="${1:-}"
  case "$p" in
    ''|*[!0-9]*) echo "" ; return ;;
  esac
  if [ "$p" -lt 1 ] || [ "$p" -gt 65535 ]; then
    echo ""
    return
  fi
  echo "$p"
}

ETC="${TRIM_PKGETC:-}"
VAR="${TRIM_PKGVAR:-}"

if [ -z "$ETC" ] || [ -z "$VAR" ]; then
  log_fail "缺少 TRIM_PKGETC 或 TRIM_PKGVAR"
  exit 1
fi

mkdir -p "$ETC" "$VAR/data" "$VAR/logs" || {
  log_fail "无法创建配置/数据目录"
  exit 1
}

KEY_FILE="$ETC/data-key"
if [ ! -s "$KEY_FILE" ]; then
  if command -v openssl >/dev/null 2>&1; then
    KEY="$(openssl rand -base64 48 2>/dev/null | tr -d '\n')"
  else
    KEY="$(head -c 48 /dev/urandom | base64 | tr -d '\n')"
  fi
  printf '%s' "$KEY" >"$KEY_FILE"
  chmod 600 "$KEY_FILE" || true
fi

PORT_VAL="$(normalize_port "${wizard_port:-}")"
if [ -z "$PORT_VAL" ]; then
  PORT_VAL="$(normalize_port "${TRIM_SERVICE_PORT:-}")"
fi
[ -n "$PORT_VAL" ] || PORT_VAL=59188

{
  echo "wizard_port=${PORT_VAL}"
  echo "PORT=${PORT_VAL}"
} >"$ETC/settings.conf"
chmod 600 "$ETC/settings.conf" || true

echo "Prepared Ydisks Xianyu Helper data dirs PORT=${PORT_VAL}"
exit 0
