164 lines
4.9 KiB
Bash
164 lines
4.9 KiB
Bash
#!/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
|
|
|
|
case "$1" in
|
|
configure)
|
|
|
|
# Copy apache.conf file into target directory
|
|
fileorig="/usr/share/dolibarr/build/deb/apache.conf"
|
|
config="/etc/dolibarr/apache.conf"
|
|
mkdir -p /etc/dolibarr
|
|
cp -p $fileorig $config
|
|
|
|
# Create install.forced.php into Dolibarr install directory
|
|
fileorig="/usr/share/dolibarr/build/deb/install.forced.php.install"
|
|
config="/usr/share/dolibarr/htdocs/install/install.forced.php"
|
|
superuserlogin=''
|
|
superuserpassword=''
|
|
if [ -f /etc/mysql/debian.cnf ] ; then
|
|
# Load superuser login and pass
|
|
superuserlogin=$(/bin/grep --max-count=1 "user" /etc/mysql/debian.cnf | /bin/sed -e 's/^user[ =]*//g')
|
|
superuserpassword=$(/bin/grep --max-count=1 "password" /etc/mysql/debian.cnf | /bin/sed -e 's/^password[ =]*//g')
|
|
fi
|
|
echo Mysql superuser found to use is $superuserlogin
|
|
if [ -z "$superuserlogin" ] ; then
|
|
cat $fileorig | sed -e 's/__SUPERUSERLOGIN__/root/g' | sed -e 's/__SUPERUSERPASSWORD__//g' > $config
|
|
else
|
|
cat $fileorig | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $config
|
|
fi
|
|
|
|
# Create document directory
|
|
#docdir='/var/lib/dolibarr/documents'
|
|
docdir='/usr/share/dolibarr/documents'
|
|
mkdir -p $docdir
|
|
chown -R www-data:www-data $docdir
|
|
chmod -R 775 $docdir
|
|
chmod -R g+s $docdir
|
|
|
|
# Create an empty conf.php with permission to web server
|
|
if [ ! -f /usr/share/dolibarr/htdocs/conf/conf.php ]
|
|
then
|
|
echo Create empty file /usr/share/dolibarr/htdocs/conf/conf.php
|
|
touch /usr/share/dolibarr/htdocs/conf/conf.php
|
|
chown -R www-data:www-data /usr/share/dolibarr/htdocs/conf/conf.php
|
|
chmod -R 750 /usr/share/dolibarr/htdocs/conf/conf.php
|
|
fi
|
|
|
|
#db_reset "dolibarr/webserver"
|
|
|
|
# Get the web server type (use db_get for interactive mode).
|
|
#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
|
|
|
|
#
|
|
# That may lead to problems if apache & apache-ssl do
|
|
# not have the same user/group.
|
|
#
|
|
chown -R $webuser:$webgroup /usr/share/dolibarr
|
|
|
|
# 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
|
|
|
|
done
|
|
|
|
#echo "Install menu entry"
|
|
# This one is for Gnome ubuntu
|
|
#fileorig="/usr/share/dolibarr/build/deb/dolibarr.desktop"
|
|
#target="/usr/share/applications/"
|
|
#cp -f $fileorig $target
|
|
# Not sure this is usefull
|
|
if test -x /usr/bin/update-menus; then
|
|
echo "update-menus"
|
|
update-menus;
|
|
fi
|
|
|
|
# TODO Create the file to force parameters in Web installer
|
|
#if grep DBHOST /usr/share/dolibarr/htdocs/conf/conf.php > /dev/null
|
|
#then
|
|
# perl -pi -e "s/DBHOST/$dbserver/" /usr/share/dolibarr/htdocs/conf/conf.php
|
|
# perl -pi -e "s/DBNAME/$dbname/" /usr/share/dolibarr/htdocs/conf/conf.php
|
|
# perl -pi -e "s/DBUSER/$dbuser/" /usr/share/dolibarr/htdocs/conf/conf.php
|
|
# perl -pi -e "s/DBPASS/$dbpass/" /usr/share/dolibarr/htdocs/conf/conf.php
|
|
#fi
|
|
|
|
# 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#
|
|
|
|
exit 0
|