#! /bin/sh # postrm script for campcaster # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `purge' # * `upgrade' # * `failed-upgrade' # * `abort-install' # * `abort-install' # * `abort-upgrade' # * `disappear' overwrit>r> # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package installdir=/opt/campcaster apache_docroot=/var/www postgres_user=postgres postgresql_dir=/etc/postgresql/8.1/main postgresql_init_script=/etc/init.d/postgresql-8.1 ls_dbserver=localhost ls_database=Campcaster ls_dbuser=campcaster #------------------------------------------------------------------------------- # Function to check for the existence of an executable on the PATH # # @param $1 the name of the exectuable # @return 0 if the executable exists on the PATH, non-0 otherwise #------------------------------------------------------------------------------- check_exe() { if [ -x "`which $1 2> /dev/null`" ]; then echo "Exectuable $1 found..."; return 0; else echo "Exectuable $1 not found..."; return 1; fi } case "$1" in remove|upgrade|failed-upgrade|abort-install|abort-upgrade) # remove the init script rm -f /etc/init.d/campcaster-scheduler update-rc.d campcaster-scheduler remove # remove the symlink to the campcaster web pages rm -f $apache_docroot/campcaster # restore the old pg_hba.conf file if [ -f $postgresql_dir/pg_hba.conf ] \ && [ -f $postgresql_dir/pg_hba.conf.before-campcaster ] ; then mv -f $postgresql_dir/pg_hba.conf \ $postgresql_dir/pg_hba.conf.campcaster ; mv -f $postgresql_dir/pg_hba.conf.before-campcaster \ $postgresql_dir/pg_hba.conf ; fi ;; purge|disappear) echo "Checking for required tools..." check_exe "psql" || exit 1; check_exe "odbcinst" || exit 1; echo "Deleting data files..."; rm -rf $installdir/etc/scheduler.xml rm -rf $installdir/etc/gst-registry.xml rm -rf $installdir/etc/pear.conf rm -rf $installdir/var/Campcaster/htmlUI/var/html/img/* rm -rf $installdir/var/Campcaster/htmlUI/var/templates_c/* rm -rf $installdir/var/Campcaster/storageServer/var/stor/* rm -rf $installdir/var/Campcaster/storageServer/var/access/* rm -rf $installdir/var/Campcaster/storageServer/var/trans/* rm -rf $installdir/var/Campcaster/archiveServer/var/stor/* rm -rf $installdir/var/Campcaster/archiveServer/var/access/* rm -rf $installdir/var/Campcaster/archiveServer/var/trans/* echo "Removing ODBC data source and driver..."; # kill active connections to database $postgresql_init_script stop $postgresql_init_script start echo "Removing Campcaster ODBC data source..."; odbcinst -u -s -l -n $ls_database || exit 1; echo "De-registering ODBC PostgreSQL driver..."; odbcinst -u -d -n PostgreSQL_Campcaster || exit 1; echo "Removing database and database user..."; if [ "x$ls_dbserver" == "xlocalhost" ]; then su - $postgres_user -c \ "echo \"DROP DATABASE \\\"$ls_database\\\" \"\ | psql template1" \ || echo "Couldn't drop database $ls_database."; su - $postgres_user -c "echo \"DROP USER $ls_dbuser \"\ | psql template1" \ || echo "Couldn't drop database user $ls_dbuser."; else echo "Unable to automatically drop database user and table for"; echo "remote database $ls_dbserver."; echo "Make sure to drop database user $ls_dbuser on database"; echo "server at $ls_dbserver."; echo "Also drop the database called $ld_database."; echo ""; echo "The easiest way to achieve this is by issuing the"; echo "following SQL commands to PostgreSQL:"; echo "DROP DATABASE \"$ls_database\";"; echo "DROP USER $ls_dbuser;"; fi ;; *) echo "postrm called with unknown argument \`$1'" >&2 exit 1 esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# exit 0