X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=debian%2Fdiogenes.postrm;h=620f9248e2fc60f1c30d9bebce25e32a77f2affc;hb=b6e8910e3b52d18305c0e9bbab68654bdff2959e;hp=3e394d29dc346559f82965a7813aa2a9df3c2daf;hpb=6855525e48fad5de270500a5445c4f4ff85d8bda;p=diogenes.git diff --git a/debian/diogenes.postrm b/debian/diogenes.postrm index 3e394d2..620f924 100644 --- a/debian/diogenes.postrm +++ b/debian/diogenes.postrm @@ -1,5 +1,5 @@ #!/bin/sh -e -# Horde postrm script using debconf +# Diogenes postrm script using debconf # Originally written for horde by Ola Lundqvist # Adapted for horde2 by Nils Rennebarth # Adapted for Diogenes by Jeremy Lainé @@ -13,73 +13,73 @@ remove_from_webconfig () { servers="$server $servers" if [ -s /etc/$server/conf.d/diogenes ] ; then rm -f /etc/$server/conf.d/diogenes - restart="$server $restart" + restart_servers="$server $restart_servers" fi done # Restart servers - if [ -e /usr/share/wwwconfig-common/restart.sh ] ; then - . /usr/share/wwwconfig-common/restart.sh + if [ -n "$restart_servers" ]; then + for server in $restart_servers; do + if [ -x /etc/init.d/$server ]; then + if which invoke-rc.d >/dev/null 2>&1; then + invoke-rc.d $server reload + else + /etc/init.d/$server reload + fi + fi + done fi } +# FIXME: do we need to source debconf before the hook? +# source dbconfig-common shell library, and call the hook function +if [ -f /usr/share/dbconfig-common/dpkg/postrm.mysql ]; then + . /usr/share/dbconfig-common/dpkg/postrm.mysql + dbc_go diogenes $@ +fi + ACTION=$1 case "$ACTION" in remove) # # Remove Diogenes from the webserver configuration # - . /usr/share/debconf/confmodule - db_version 2.0 + if [ -f /usr/share/debconf/confmodule ]; then + . /usr/share/debconf/confmodule + db_version 2.0 - # - # Only try to remove Diogenes from the webserver configs if the db key - # diogenes/webservers exists. If not, Diogenes had not been installed - # correctly so we just skip the webserver part - # - if db_get "diogenes/webservers"; then - remove_from_webconfig + # + # Only try to remove Diogenes from the webserver configs if the db key + # diogenes/webservers exists. If not, Diogenes had not been installed + # correctly so we just skip the webserver part + # + if db_get "diogenes/webservers"; then + remove_from_webconfig + fi fi ;; purge) - . /usr/share/debconf/confmodule - db_version 2.0 - # # Remove ucf-managed files # - for myfile in /etc/diogenes/apache.conf /etc/diogenes/diogenes.debian.inc.php; do - ucf --purge $myfile - rm -f $myfile $myfile.dpkg-dist $myfile.dpkg-new $myfile.dpkg-old - done + if [ -n "$(which ucf)" ] ; then + for myfile in /etc/diogenes/apache.conf /etc/diogenes/diogenes.debian.inc.php; do + ucf --purge $myfile + rm -f $myfile $myfile.dpkg-dist $myfile.dpkg-new $myfile.dpkg-old + done + fi # # If we were asked to, purge Diogenes data # - db_get "diogenes/purge_removes_data" - if [ "$RET" = "true" ]; then - # remove files - rm -rf /var/spool/diogenes /var/lib/diogenes - - # drop the database if we are Automatic mode - db_get "diogenes/databasemgr_type" - if [ "$RET" = "Automatic" ] ; then - db_get "diogenes/databasemgr_server" - dbserver="$RET" - db_get "diogenes/database_name" - dbname="$RET" - # we use the Diogenes user as the "admin", as he is authorized to do a drop - db_get "diogenes/database_user" - dbadmin="$RET" - db_get "diogenes/database_pass" - dbadmpass="$RET" - if [ -f /usr/share/wwwconfig-common/mysql.get ] && [ -x $(which mysql) ] ; then - . /usr/share/wwwconfig-common/mysql.get - if eval $mysqlcmd -f -e "\"DROP DATABASE $dbname;\"" ; then - status=dropped - fi - fi + if [ -f /usr/share/debconf/confmodule ]; then + . /usr/share/debconf/confmodule + db_version 2.0 + db_get "diogenes/purge_removes_data" + if [ "$RET" = "true" ]; then + # remove files + rm -rf /var/spool/diogenes /var/lib/diogenes fi fi ;;