#!/usr/bin/env bash

if [ -z "$BASE_DIR" ]; then
    BASE_DIR=$(mktemp -d)
fi
export PGDATA="$BASE_DIR/pgdata"

export DB_USER=yore-test
export DB_DBNAME=yore-test
export DB_PORT=5433

# On error or exit: Stop the DB server
stop_db_server() {
    pg_ctl stop -o "-p ${DB_PORT}" --wait
}
trap stop_db_server EXIT

if [ ! -s "$PGDATA/PG_VERSION" ]; then
    initdb --username="${DB_USER}" --auth=trust || true
    DO_CREATE_DB=1
fi
pg_ctl start -o "-p 5433" --wait
if [ -n "$DO_CREATE_DB" ]; then
    createdb -p "${DB_PORT}" "${DB_DBNAME}" --username="${DB_USER}" || true
fi

DATABASE_URL="postgres://${DB_USER}@localhost:${DB_PORT}/${DB_DBNAME}?sslmode=disable" dbmate up

export YORE_DB="host=localhost port=${DB_PORT} user=${DB_USER} dbname=${DB_DBNAME}" 

"$@"
