36 lines
1.5 KiB
Bash
Executable File
36 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -eu
|
|
|
|
PASSWORD="${wizard_admin_password:-}"
|
|
PASSWORD_CONFIRM="${wizard_admin_password_confirm:-}"
|
|
POSTGRES_ENROLLMENT_TOKEN="${wizard_postgres_enrollment_token:-}"
|
|
unset wizard_admin_password wizard_admin_password_confirm wizard_postgres_enrollment_token
|
|
|
|
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
|
|
}
|
|
|
|
[ "$PASSWORD" = "$PASSWORD_CONFIRM" ] || fail "管理员密码两次输入不一致。"
|
|
[ "${#PASSWORD}" -ge 10 ] || fail "管理员密码至少需要 10 个字符。"
|
|
[ "${#PASSWORD}" -le 256 ] || fail "管理员密码不能超过 256 个字符。"
|
|
case "$PASSWORD" in
|
|
*$'\n'*|*$'\r'*) fail "管理员密码不能包含换行符。" ;;
|
|
esac
|
|
[ "${#POSTGRES_ENROLLMENT_TOKEN}" -ge 20 ] || fail "PostgreSQL 应用接入令牌至少需要 20 个字符。"
|
|
[ "${#POSTGRES_ENROLLMENT_TOKEN}" -le 256 ] || fail "PostgreSQL 应用接入令牌不能超过 256 个字符。"
|
|
case "$POSTGRES_ENROLLMENT_TOKEN" in
|
|
*$'\n'*|*$'\r'*) fail "PostgreSQL 应用接入令牌不能包含换行符。" ;;
|
|
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' "$PASSWORD" >"${TRIM_PKGVAR}/admin-password.seed"
|
|
printf '%s\n' "$POSTGRES_ENROLLMENT_TOKEN" >"${TRIM_PKGVAR}/postgres-enrollment-token.seed"
|
|
unset PASSWORD PASSWORD_CONFIRM POSTGRES_ENROLLMENT_TOKEN
|
|
exit 0
|