#!/bin/bash set -eu ADMIN_PASSWORD="${wizard_postgres_admin_password:-}" ADMIN_PASSWORD_CONFIRM="${wizard_postgres_admin_password_confirm:-}" ENROLLMENT_TOKEN="${wizard_postgres_enrollment_token:-}" ENROLLMENT_TOKEN_CONFIRM="${wizard_postgres_enrollment_token_confirm:-}" unset wizard_postgres_admin_password wizard_postgres_admin_password_confirm unset wizard_postgres_enrollment_token wizard_postgres_enrollment_token_confirm fail() { printf '%s\n' "$1" >&2 if [ -n "${TRIM_TEMP_LOGFILE:-}" ]; then printf '%s\n' "$1" >>"$TRIM_TEMP_LOGFILE" 2>/dev/null || true fi exit 1 } [ "$ADMIN_PASSWORD" = "$ADMIN_PASSWORD_CONFIRM" ] || fail "管理密码两次输入不一致。" [ "${#ADMIN_PASSWORD}" -ge 12 ] || fail "管理密码至少需要 12 个字符。" [ "${#ADMIN_PASSWORD}" -le 256 ] || fail "管理密码不能超过 256 个字符。" [ "$ENROLLMENT_TOKEN" = "$ENROLLMENT_TOKEN_CONFIRM" ] || fail "接入令牌两次输入不一致。" [ "${#ENROLLMENT_TOKEN}" -ge 20 ] || fail "接入令牌至少需要 20 个字符。" [ "${#ENROLLMENT_TOKEN}" -le 256 ] || fail "接入令牌不能超过 256 个字符。" case "$ADMIN_PASSWORD$ENROLLMENT_TOKEN" in *$'\n'*|*$'\r'*) fail "密码和令牌不能包含换行符。" ;; esac mkdir -p "${TRIM_PKGVAR}/run" "${TRIM_PKGVAR}/log" chmod 0700 "${TRIM_PKGVAR}" "${TRIM_PKGVAR}/run" 2>/dev/null || true umask 077 printf '%s\n' "$ADMIN_PASSWORD" >"${TRIM_PKGVAR}/admin-password.seed" printf '%s\n' "$ENROLLMENT_TOKEN" >"${TRIM_PKGVAR}/enrollment-token.seed" unset ADMIN_PASSWORD ADMIN_PASSWORD_CONFIRM ENROLLMENT_TOKEN ENROLLMENT_TOKEN_CONFIRM exit 0