Skip to content
Snippets Groups Projects
postinst 4.16 KiB
Newer Older
#!/bin/sh
# postinst script for dolibarr
#
# see: dh_installdeb(1)

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/

. /usr/share/debconf/confmodule
db_version 2.0


echo Run the dolibarr postinst script
# Define vars
docdir='/var/lib/dolibarr/documents'
#docdir='/usr/share/dolibarr/documents'
apachefileorig="/usr/share/dolibarr/build/deb/apache.conf"
apacheconfig="/etc/dolibarr/apache.conf"
installfileorig="/usr/share/dolibarr/build/deb/install.forced.php.install"
installconfig="/etc/dolibarr/install.forced.php"
#config="/usr/share/dolibarr/htdocs/conf/conf.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 apache.conf file into target directory
		#mkdir -p /etc/dolibarr
		#cp -p $apachefileorig $apacheconfig
		# 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
		# Get the web server type (use db_get for interactive mode).
		#db_reset "dolibarr/webserver"
		#db_get "dolibarr/webserver"		# Read value for webserver.
		#webserver="$RET"
		case $webserver in
			Apache)		webservers="apache2" ;;
			Apache-SSL)	webservers="apache2-ssl" ;;
			Both)		webservers="apache2 apache2-ssl" ;;
			*)		    webservers="apache2 apache2-ssl" ;;
		esac

		# Set up web server.
		for server in $webservers ; do
			echo Complete config of server $server
			
			# 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
			# Add link to config file
            echo Setup web server $server to add dolibarr config file
			ln -fs /etc/dolibarr/apache.conf /etc/apache2/conf.d/dolibarr.conf
		# Restart servers
		servers="apache2-ssl apache2 mysql"
		# Another way to restart
		for server in $servers ; do
    		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 $server reload || true
    		else
                echo Restart web server $server using $server reload
    	    	/etc/init.d/$server reload || true
    		fi
		done
		echo ----------
		echo "Call Dolibarr page http://localhost/dolibarr/ to complete the installation and use Dolibarr."
		echo ----------
	;;

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

	*)
		echo "postinst called with unknown argument \`$1'" >&2
		exit 0
	;;
esac

db_stop

#DEBHELPER#