#!/bin/sh

##############################################################################################################################
###################################         (c) 2004 by Tai Pan taipan@rdslink.ro          ###################################
##############################################################################################################################

#create user and group for PostgreSQL 
niutil -destroy / /groups/postgres
niutil -create / /groups/postgres
niutil -createprop / /groups/postgres gid 313
niutil -createprop / /groups/postgres passwd "*"
niutil -destroy / /users/postgres
niutil -create / /users/postgres
niutil -createprop / /users/postgres gid 313
niutil -createprop / /users/postgres uid 313
niutil -createprop / /users/postgres home "/private/var/postgres"
niutil -createprop / /users/postgres shell "/bin/sh"
niutil -createprop / /users/postgres passwd "*"
niutil -createprop / /groups/postgres users "postgres"


#Create folders and 'initdb' the database
rm -fr /private/var/postgres
mkdir /private/var/postgres
mkdir /private/var/postgres/data
chown -R postgres.postgres /private/var/postgres
cd /private/var/postgres/data
export PGDATA="/private/var/postgres/data"
su postgres -c '/usr/local/bin/initdb . -A trust' # use trust for localhost
su postgres -c '/usr/local/bin/pg_ctl start'
sleep 4 #give some time to postmeaste to start
su postgres -c 'createlang plpgsql template1'
su postgres -c 'createlang plperl template1'
su postgres -c 'createlang plperlu template1'
su postgres -c 'createlang pltcl template1'
su postgres -c 'createlang pltclu template1'
su postgres -c 'createlang plpythonu template1'
su postgres -c '/usr/local/bin/pg_ctl stop'

#create a debian-like confs
rm -fr /private/etc/postgres
mkdir /private/etc/postgres
mv /private/var/postgres/data/pg_hba.conf /etc/postgres
mv /private/var/postgres/data/pg_ident.conf /etc/postgres
mv /private/var/postgres/data/postgresql.conf /etc/postgres
ln -s /private/etc/postgres/pg_hba.conf /private/var/postgres/data/pg_hba.conf
ln -s /private/etc/postgres/pg_ident.conf /private/var/postgres/data/pg_ident.conf
ln -s /private/etc/postgres/postgresql.conf /private/var/postgres/data/postgresql.conf
echo 'PGDATA="/private/var/postgres/data"'>/private/etc/postgres/postgres.env
echo 'PGOPTIONS="" # -i for internet '>>/private/etc/postgres/postgres.env
