oauth2-mock-server/mkDB.sh
2024-01-16 17:31:11 +00:00

29 lines
974 B
Bash
Executable File

export OAUTH2_SERVER_PORT=9443
export OAUTH2_DB_PORT=9444
tmpdir=./database
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='hba_file' -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 ./schema.sql postgres
printf "Postgres logfile is %s\nPostgres socket directory is %s\n" "${pgLogFile}" "${pgSockDir}"
export PGHOST="${pgSockDir}"
export PGLOG="${pgLogFile}"
zsh
pg_ctl stop -D "${pgDir}"
rm -rvf "${pgDir}" "${pgSockDir}" "${pgLogFile}"