123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- #!/bin/sh
- # postrm script for dolibarr
- #
- # see: dh_installdeb(1)
- #set -e
- set +e
- # 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
- db_version 2.0
- echo Run the dolibarr postrm script
- docdir='/var/lib/dolibarr/documents'
- config="/etc/dolibarr/conf.php"
- lockfile="$docdir/install.lock"
- case "$1" in
- # Call when we upgrade
- upgrade)
- echo "postrm upgrade"
- ;;
- # Call when we uninstall
- remove)
- echo "postrm remove"
- rm -f $lockfile
- # 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
- fi
- done
- ;;
- # Call when we uninstall and purge
- purge)
- echo "postrm purge"
- # Ask if we must delete database
- echo "postrm db_input dolibarr/postrm"
- db_input critical dolibarr/postrm || true
- db_go || true
- echo "postrm db_get dolibarr/postrm"
- # We disable set -e to avoid premature end of script if error
- set +e
- db_get dolibarr/postrm
- set -e
-
- if [ "$RET" = "true" ] ; then
- echo postrm Mysql database deletion
- # Get database configuration
- dbserver="localhost"
- 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"
- 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"
- mysqlcmdnopass="mysql $hostopt -u $dbadmin"
-
- # Now run the drop user
- if eval $mysqlcmd -f -e "\"DROP USER '$dbuser'@'localhost';\"" ; then
- echo postrm Database login $dbuser@localhost removed
- else
- error="Unable to run $mysqlcmdnopass -f -e \"DROP USER '$dbuser'@'localhost';\""
- echo postrm $error
- fi
- if eval $mysqlcmd -f -e "\"DROP USER '$dbuser'@'%';\"" ; then
- echo postrm Database login $dbuser@% removed
- else
- error="Unable to run $mysqlcmdnopass -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."
- echo postrm $error
- else
- status=drop
- fi
- else
- error="Unable to run the drop database script."
- echo postrm $error
- fi
- else
- status=nothing
- log="${log}Database $dbname already not exists."
- fi
- echo "postrm Remove directory $docdir"
- rm -rf $docdir ;
-
- else
- echo "postrm Delete of dolibarr database and uploaded files not wanted"
- fi
-
- rm -rf /etc/dolibarr
- # 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
- set -e
- #db_purge
- ;;
- failed-upgrade|abort-install|abort-upgrade|disappear)
- ;;
- *)
- echo "postrm called with unknown argument $1" >&2
- exit 0
- ;;
- esac
- #DEBHELPER#
- db_stop
- exit 0
|