Newer
Older
Laurent Destailleur
committed
# postrm script for dolibarr
#
# see: dh_installdeb(1)
#set -e
set +e
Laurent Destailleur
committed
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version>
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
# for details, see /usr/share/doc/packaging-manual/
lighttpd_remove() {
if [ -f /etc/lighttpd/conf-available/50-dolibarr.conf ] ; then
echo "postrm Remove link for Lighttpd config file"
rm -f /etc/lighttpd/conf-available/50-dolibarr.conf
if which lighty-enable-mod >/dev/null 2>&1 ; then
lighty-disable-mod dolibarr
else
echo "postrm Lighttpd not installed, skipping"
fi
# See bug #448682
if [ -h /etc/lighttpd/conf-enabled/50-dolibarr.conf ] ; then
echo "postrm Manually deleting lighttpd/dolibarr configuration link"
rm /etc/lighttpd/conf-enabled/50-dolibarr.conf
fi
fi
}
apache_remove() {
if [ -d /etc/$webserver/conf.d ] && [ -L /etc/$webserver/conf.d/dolibarr.conf ]; then
echo "postrm Remove link for Apache config file"
rm -f /etc/$webserver/conf.d/dolibarr.conf
fi
}
if [ -f /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
fi
Laurent Destailleur
committed
db_version 2.0
echo Run the dolibarr postrm script
Laurent Destailleur
committed
lockfile="$docdir/install.lock"
Laurent Destailleur
committed
case "$1" in
# Reconfigure web server
db_get dolibarr/reconfigure-webserver
webservers="$RET"
# Restart web servers
for webserver in $webservers; do
webserver=${webserver%,}
if [ "$webserver" = "lighttpd" ] ; then
lighttpd_remove
else
apache_remove $webserver
fi
# Redirection of 3 is needed because Debconf uses it and it might
# be inherited by webserver. See bug #446324.
if [ -f /etc/init.d/$webserver ] ; then
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d $webserver reload 3>/dev/null || true
else
/etc/init.d/$webserver reload 3>/dev/null || true
fi
Laurent Destailleur
committed
purge)
# Ask if we must delete database
echo "postrm db_input dolibarr/postrm"
db_go || true
echo "postrm db_get dolibarr/postrm"
# We disable set -e to avoid premature end of script if error
set +e
Laurent Destailleur
committed
if [ "$RET" = "true" ] ; then
Laurent Destailleur
committed
# Get database configuration
dbuser="dolibarrdebian"
dbname="dolibarrdebian"
#db_get "dolibarr/db/name"
#dbname="$RET"
superuserlogin=''
superuserpassword=''
if [ -f /etc/mysql/debian.cnf ] ; then
# Load superuser login and pass
superuserlogin=$(grep --max-count=1 "user" /etc/mysql/debian.cnf | sed -e 's/^user[ =]*//g')
superuserpassword=$(grep --max-count=1 "password" /etc/mysql/debian.cnf | sed -e 's/^password[ =]*//g')
fi
echo postrm Mysql superuser found to use is $superuserlogin
dbadmin="$superuserlogin"
dbadmpass="$superuserpassword"
Laurent Destailleur
committed
dbtype="mysql"
# To delete a mysql user (disabled)
# Needs: $dbuser - the user name to create (or replace).
# $dballow - what hosts to allow (defaults to %).
# $dbname - the database that user should have access to.
# $dbpass - the password to use.
# $dbserver - the server to connect to.
# $dbadmin - the administrator name.
# $dbadmpass - the administrator password.
# which
# mysql
# /usr/share/wwwconfig-coomon/mysql.get
#. /usr/share/wwwconfig-common/${dbtype}-dropuser.sh
# To delete database
# Needs: $dbname - the database that user should have access to.
# $dbserver - the server to connect to.
# $dbadmin - the administrator name.
# $dbadmpass - the administrator password.
# which
# mysql
# /usr/share/wwwconfig-common/mysql.get
echo "postrm Delete database $dbname on server $dbserver using account $dbadmin"
# Define mysqlcmd
if [ -z "$dbserver" ] || [ "$dbserver" = "localhost" ]; then
hostopt=""
dbserver=localhost
else
case "$dbserver" in
:*)
dbsocket=`echo $dbserver | sed -e 's/^://'`
hostopt="-S $dbsocket"
;;
*)
hostopt="-h $dbserver"
;;
esac
fi
if [ -z "$dbadmpass" ] ; then
log="${log}No password used."
passopt=""
else
passopt="--password='"`echo "$dbadmpass" | sed -e "s/'/'"'"'"'"'"'"'/g"`"'"
fi
mysqlcmd="mysql $hostopt $passopt -u $dbadmin"
# Now run the drop user
if eval $mysqlcmd -f -e "\"DROP USER '$dbuser'@'localhost';\"" ; then
echo postrm Database login $dbuser@localhost removed
error="Unable to run $mysqlcmd -f -e \"DROP USER '$dbuser'@'localhost';\""
if eval $mysqlcmd -f -e "\"DROP USER '$dbuser'@'%';\"" ; then
echo postrm Database login $dbuser@% removed
else
error="Unable to run $mysqlcmd -f -e \"DROP USER '$dbuser'@'%';\""
echo postrm $error
fi
# Now run the drop commands
if eval $mysqlcmd -f -e "\"show databases;\"" | grep -e "^$dbname" > /dev/null 2>&1 ; then
log="${log}Droping database $dbname."
if eval $mysqlcmd -f -e "\"DROP DATABASE $dbname;\"" ; then
if eval $mysqlcmd -f -e "\"show databases;\"" | grep -e "^$dbname" > /dev/null 2>&1 ; then
error="Database $dbname NOT successfully droped. You have to do it manually."
else
status=drop
fi
else
error="Unable to run the drop database script."
status=nothing
log="${log}Database $dbname already not exists."
echo "postrm Delete of dolibarr database and uploaded files not wanted"
Laurent Destailleur
committed
fi
Laurent Destailleur
committed
# We clean variable (we ignore errors because db_reset can fails if var was never set)
set +e
db_reset dolibarr/reconfigure-webserver
db_reset dolibarr/postrm
Laurent Destailleur
committed
;;
Laurent Destailleur
committed
failed-upgrade|abort-install|abort-upgrade|disappear)
;;
Laurent Destailleur
committed
*)
echo "postrm called with unknown argument $1" >&2
Laurent Destailleur
committed
exit 0
;;
esac