#!/bin/sh
# First we define the function
ConfirmOrExit ()
{
while true
do
echo -n "Please confirm (y or n) :"
read CONFIRM
case $CONFIRM in
y|Y|YES|yes|Yes) break ;;
n|N|no|NO|No)
echo "Aborting - you entered $CONFIRM"
exit
;;
*) echo "Please enter only y or n"
esac
done
echo "You entered $CONFIRM. Continuing ..."
}
# Absolute path to this script, e.g. /home/user/bin/foo.sh
SCRIPT=$(readlink -f "$0")
# Absolute path this script is in, thus /home/user/bin
SCRIPTPATH=$(dirname "$SCRIPT")
DIR=$(dirname "$SCRIPTPATH");
DIR_CONF=$DIR"/conf"
echo "SCRIPT=$SCRIPT";
echo "SCRIPTPATH=$SCRIPTPATH";
echo "DIR=$DIR";
echo "DIR_CONF=$DIR_CONF";
ConfirmOrExit
IS_INSTALL=$(prt-get isinst postgresql);
echo $IS_INSTALL;
if [ "$IS_INSTALL" = "package postgresql is installed" ]
then
echo "updating postgresql"
OLD_VERSION=$(prt-get current postgresql);
echo $OLD_VERSION;
sudo -u postgres pg_dumpall > /srv/pgsql/dump-$OLD_VERSION.sql
sh /etc/rc.d/postgresql stop
#extra backup, in case ...
tar --xattrs -zcpf /srv/pgsql/data-$OLD_VERSION.tar.gz \
--directory=/srv/pgsql/data .
rm -R /srv/pgsql/data
prt-get update postgresql
NEW_VERSION=$(prt-get current postgresql);
echo $NEW_VERSION;
sudo -u postgres initdb -D /srv/pgsql/data
rejmerge
#installer overwrite system init script
cp -R $DIR_CONF/etc/rc.d/postgresql /etc/rc.d/
sh /etc/rc.d/postgresql start
sleep 5
sudo -u postgres psql -d postgres -f /srv/pgsql/dump-$OLD_VERSION.sql
else
echo "install postgresql and dependencies"
prt-get depinst postgresql
cp -R $DIR_CONF/etc/rc.d/postgresql /etc/rc.d/
mkdir /srv/pgsql/
touch /var/log/postgresql
chown postgres:postgres /srv/pgsql /var/log/postgresql
sudo -u postgres initdb -D /srv/pgsql/data
cp $DIR_CONF/srv/pgsql/data/pg_hba.conf /srv/pgsql/data/
chown postgres:postgres /srv/pgsql/data/pg_hba.conf
fi
exit 0;