Skip to content
Snippets Groups Projects
postinst 4.39 KiB
Newer Older
#!/bin/sh
# postinst script for dolibarr

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see /usr/share/doc/packaging-manual/



lighttpd_install() {
	if [ ! -f /etc/lighttpd/conf-available/50-dolibarr.conf ] ; then
		if which lighty-enable-mod >/dev/null 2>&1 ; then
			echo "Add link for Lighttpd config file"
			ln -fs /etc/dolibarr/lighttpd.conf /etc/lighttpd/conf-available/50-dolibarr.conf
			# We enabled it
			lighty-enable-mod dolibarr fastcgi-php
		else
			echo "Lighttpd not installed, skipping"
		fi
	fi
}

apache_install() {
	webserver=$1
	if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/dolibarr.conf ]; then
		echo "Add link for Apache config file"
		ln -fs /etc/dolibarr/apache.conf /etc/$webserver/conf.d/dolibarr.conf
. /usr/share/debconf/confmodule
db_version 2.0


echo Run the dolibarr postinst script
# Define vars
docdir='/var/lib/dolibarr/documents'
installfileorig="/usr/share/dolibarr/build/deb/install.forced.php.install"
installconfig="/etc/dolibarr/install.forced.php"
config="/etc/dolibarr/conf.php"
case "$1" in
	configure)
        # Create document directory for uploaded data files
        mkdir -p $docdir
        chown -R www-data:www-data $docdir
        chmod -R 775 $docdir
        chmod -R g+s $docdir

		# Copy install config file (with matching Debian) values into target directory
		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 Mysql superuser found to use is $superuserlogin
		if [ -z "$superuserlogin" ] ; then
			cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/root/g' | sed -e 's/__SUPERUSERPASSWORD__//g' > $installconfig
			cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $installconfig
		chown -R root:www-data $installconfig
	   	chmod -R 660 $installconfig
		# Create an empty conf.php with permission to web server
		if [ ! -f $config ]
			echo Create empty file $config		
			touch $config
			chown -R root:www-data $config
	    	chmod -R 660 $config
	
		db_get dolibarr/reconfigure-webserver
	
		webservers="$RET"
	
		# Set up web server.
		for webserver in $webservers ; do
			webserver=${webserver%,}
			echo Complete config of server $webserver
			
			# Detect webuser and webgroup
			webuser=
			webgroup=
			if [ -z "$webuser" ] ; then
				webuser=www-data
			fi
			if [ -z "$webgroup" ] ; then
				webgroup=www-data
			fi

			echo Web user.group used is $webuser.$webgroup

			# Set permissions to web server
			chown -R $webuser:$webgroup /usr/share/dolibarr
            chown -R root:$webgroup $config
		# Restart web server.
		for webserver in $webservers; do
			webserver=${webserver%,}
			if [ "$webserver" = "lighttpd" ] ; then
				lighttpd_install
			else
				apache_install $webserver
			fi
			# Reload webserver in any case, configuration might have changed
			# 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
    	            echo Restart web server $server using invoke-rc.d
	    		    # This works with Debian (5.05,...) and Ubuntu (9.10,10.04,...)
	                invoke-rc.d $webserver reload 3>/dev/null || true
	            else
	                echo Restart web server $server using $server reload
	                /etc/init.d/$webserver reload 3>/dev/null || true
	            fi
	        fi
		echo ----------
Laurent Destailleur's avatar
Laurent Destailleur committed
		echo "Call Dolibarr page http://localhost/dolibarr/ to complete the setup and use Dolibarr."
		echo ----------
	;;

	abort-upgrade|abort-remove|abort-deconfigure)
	;;

	*)
		echo "postinst called with unknown argument $1" >&2