mirror of
https://github.com/YunoHost-Apps/dolibarr_ynh.git
synced 2024-09-03 18:35:53 +02:00
246 lines
6.8 KiB
Bash
246 lines
6.8 KiB
Bash
#!/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
|