#!/bin/sh

cd `dirname $0`

die () {
    echo $@ 1>&2
    exit 1
}

create_lang () {
    local lang=$1
    shift

    local installed
    installed=`psql -qtc "SELECT EXISTS( SELECT * FROM pg_language WHERE lanname='$lang' )" $@`
    [ $? -eq 0 ] || die ERROR: Unable to determine if $lang is installed

    if [ $installed = f ]; then
        psql -v ON_ERROR_STOP -qc "CREATE LANGUAGE $lang" $@ || die ERROR: Unable to create language $lang
    fi
}

psql -v ON_ERROR_STOP=1 -qtc 'SELECT 1' $@ > /dev/null || exit 1

echo Installing languages
for lang in pgsql perl perlu; do
    create_lang pl${lang} $@ || exit 1
done

echo Installing roles
psql -qtf roles.sql $@ 2>&1 | egrep -v 'role "[^"]+" (already exists|is already a member of role ")'

echo Installing schema
psql -v ON_ERROR_STOP=1 -qtf schema.sql $@ > /dev/null || die ERROR: Unable to install
echo Done!
