30 lines
1.2 KiB
Bash
Executable File
30 lines
1.2 KiB
Bash
Executable File
# SPDX-FileCopyrightText: 2024 UniWorX Systems
|
|
# SPDX-FileContributor: David Mosbach <david.mosbach@uniworx.de>
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
[[ -z "${OAUTH2_HBA}" || -z "${OAUTH2_DB_SCHEMA}" ]] && echo "oauth2: missing env vars for hba and/or schema" && exit 1
|
|
|
|
tmpdir=${XDG_RUNTIME_DIR}/.oauth2-db
|
|
|
|
if [ ! -d "${tmpdir}" ]; then
|
|
mkdir ${tmpdir}
|
|
fi
|
|
|
|
absdir=$(realpath ${tmpdir})
|
|
|
|
pgDir=$(mktemp -d --tmpdir="${absdir}" postgresql.XXXXXX)
|
|
pgSockDir=$(mktemp -d --tmpdir="${absdir}" postgresql.sock.XXXXXX)
|
|
pgLogFile=$(mktemp --tmpdir="${absdir}" postgresql.XXXXXX.log)
|
|
|
|
initdb --no-locale -D "${pgDir}"
|
|
pg_ctl start -D "${pgDir}" -l "${pgLogFile}" -w -o "-k ${pgSockDir} -c listen_addresses='::' -c hba_file='${OAUTH2_HBA}' -p ${OAUTH2_DB_PORT} -h localhost -c unix_socket_permissions=0700 -c max_connections=10 -c session_preload_libraries=auto_explain -c auto_explain.log_min_duration=100ms"
|
|
psql -h "${pgSockDir}" -p ${OAUTH2_DB_PORT} -f "${OAUTH2_DB_SCHEMA}" postgres
|
|
|
|
printf "Postgres logfile is %s\nPostgres socket directory is %s\n" "${pgLogFile}" "${pgSockDir}"
|
|
|
|
export OAUTH2_PGHOST="${pgSockDir}"
|
|
export OAUTH2_PGLOG="${pgLogFile}"
|
|
export OAUTH2_PGDIR="${pgDir}"
|
|
|