#!/bin/bash set -e trap onexit ERR function onexit() { EXITCODE=$? if [ $EXITCODE -eq 102 ]; then echo "Database access not correctly configured" echo "Check your configuration and run manually the database update:" echo "cd /usr/share/gmod/chado/" echo "export GMOD_ROOT=/usr/share/gmod/chado" echo "export PGPASSFILE=/usr/share/gmod/chado/pgpass" echo "For a new installation:" echo "make load_schema" echo "make prepdb" echo "OR" echo "make update to upgrade the schema from a previous install" exit 0 fi if [ $EXITCODE -eq 100 ]; then make load_schema make prepdb make clean &> /dev/null rm -f /usr/share/gmod/chado/pgpass exit 0 fi if [ $EXITCODE -eq 101 ]; then make update make clean &> /dev/null rm -f /usr/share/gmod/chado/pgpass exit 0 fi exit $EXITCODE } case "$1" in configure) mkdir -p /usr/share/gmod/chado/lib/Bio/Chado/ if [ -e /etc/gmod/gmod-chado.conf ]; then export GMOD_ROOT=/usr/share/gmod/chado export CHADO_DB_NAME=gmod-chado export CHADO_DB_USERNAME=chado . /etc/gmod/gmod-chado.conf cd /usr/share/gmod/chado CHADOTMP=`mktemp -d` perl Makefile.PL update GMOD_ROOT=/usr/share/gmod/chado DBNAME=$CHADO_DB_NAME DBUSER=$DBUSER DBPASS=$DBPASS DBHOST=$DBHOST DBPORT=$DBPORT DBDRIVER=PostgreSQL SIMPLE=Y RECONFIGURE=1 LOCAL_TMP=$CHADOTMP &> /dev/null rm -rf $CHADOTMP export PATH=$PATH:/usr/share/gmod/chado/bin touch /usr/share/gmod/chado/pgpass chmod 0600 /usr/share/gmod/chado/pgpass echo "*:*:*:$DBUSER:$DBPASS" > /usr/share/gmod/chado/pgpass export PGPASSFILE=/usr/share/gmod/chado/pgpass # Need to detect with testdb if access to db is ok or need to be configured perl /usr/share/gmod/chado/bin/testdb.pl else echo "Application is not yet configured." echo "To install or upgrade the database:" echo " - create a user in the database" echo " - configure the application" echo " - perl /usr/share/gmod/chado/Makefile.PL update" fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac