preCheckHooks+=('postgresqlStart') postCheckHooks+=('postgresqlStop') postgresqlStart() { # Add default environment variable values # # Client variables: # - https://www.postgresql.org/docs/current/libpq-envars.html # # Server variables: # - only PGDATA: https://www.postgresql.org/docs/current/creating-cluster.html if [[ "${PGDATA:-}" == "" ]]; then PGDATA="$NIX_BUILD_TOP/postgresql" fi export PGDATA if [[ "${PGHOST:-}" == "" ]]; then mkdir -p "$NIX_BUILD_TOP/run/postgresql" PGHOST="$NIX_BUILD_TOP/run/postgresql" fi export PGHOST if [[ "${PGUSER:-}" == "" ]]; then PGUSER="test_user" fi export PGUSER if [[ "${PGDATABASE:-}" == "" ]]; then PGDATABASE="test_db" fi export PGDATABASE if [[ "${postgresqlTestUserOptions:-}" == "" ]]; then postgresqlTestUserOptions="LOGIN" fi if [[ "${postgresqlTestSetupSQL:-}" == "" ]]; then postgresqlTestSetupSQL="$(cat </dev/null; then echo >&2 'initdb not found. Did you add postgresql to the checkInputs?' false fi header 'initializing postgresql' initdb -U postgres # Move the socket echo "unix_socket_directories = '$NIX_BUILD_TOP/run/postgresql'" >>"$PGDATA/postgresql.conf" # TCP ports can be a problem in some sandboxes, # so we disable tcp listening by default if ! [[ "${postgresqlEnableTCP:-}" = 1 ]]; then echo "listen_addresses = ''" >>"$PGDATA/postgresql.conf" fi header 'starting postgresql' eval "${postgresqlStartCommands:-pg_ctl start}" header 'setting up postgresql' eval "$postgresqlTestSetupCommands" } postgresqlStop() { header 'stopping postgresql' pg_ctl stop }