#!/bin/bash

set -e

# fix permissions and ownership of /var/lib/postgresql
chown -R postgres:postgres /var/lib/postgresql
chmod 700 /var/lib/postgresql

# initialize PostgreSQL data directory
if [ ! -d /var/lib/postgresql/9.1/main ]; then
	echo "Initializing database..."
	PG_PASSWORD=$(pwgen -c -n -1 14)
	echo "${PG_PASSWORD}" > /var/lib/postgresql/pwfile
	sudo -u postgres -H /usr/lib/postgresql/9.1/bin/initdb \
		--pgdata=/var/lib/postgresql/9.1/main --pwfile=/var/lib/postgresql/pwfile \
		--username=postgres --encoding=unicode --auth=trust >/dev/null
fi

echo "Starting PostgreSQL server..."
/etc/init.d/postgresql start

if [ -f /var/lib/postgresql/pwfile ]; then
	PG_PASSWORD=$(cat /var/lib/postgresql/pwfile)
	echo "|------------------------------------------------------------------|"
	echo "| PostgreSQL User: postgres, Password: ${PG_PASSWORD}              |"
	echo "|                                                                  |"
	echo "| To remove the PostgreSQL login credentials from the logs, please |"
	echo "| make a note of password and then delete the file pwfile          |"
	echo "| from the data store.                                             |"
	echo "|------------------------------------------------------------------|"
fi

tail -F /var/log/postgresql/postgresql-9.1-main.log
