#!/usr/bin/env bash

set -ueo pipefail

usage()
{
  cat 1>&2 <<EOF
Runs CMD in an environment configured for excuting PuppetDB's unit
tests against the PostgreSQL instance indicated by PGHOST and PGPORT.
Expects the database and DIR to have been set up via setup-pdb-pg.

Usage: PGHOST=X PGPORT=y pdb-test-env DIR CMD [ARG...]' 1>&2;
EOF
}

readonly pghost="${PGHOST:-}"
readonly pgport="${PGPORT:-}"

if test "$#" -lt 1 -o -z "$pghost" -o -z "$pgport"; then
    usage
    exit 1
fi

pgdir="$1"
readonly pgdir
shift 1

cd "$pgdir"

PGPASSFILE="${PGPASSFILE:-$(pwd)/pgpass}"
export PGPASSFILE

export PDB_TEST_DB_HOST="$pghost"
export PDB_TEST_DB_PORT="$pgport"
export PDB_TEST_DB_USER=pdb_test
export PDB_TEST_DB_ADMIN=pdb_test_admin

pass="$(cat pass)"
admin_pass="$(cat pass-admin)"
export PDB_TEST_DB_USER_PASSWORD="$pass"
export PDB_TEST_DB_ADMIN_PASSWORD="$admin_pass"

exec "$@"
