#! /bin/sh
-# Horde postinst script using debconf
+# Diogenes postinst script using debconf and dbconfig-common
# Written by Ola Lundqvist <opal@debian.org>
# Adapted for Horde2 by Nils Rennebarth <nils@debian.org>
# Adapted for Diogenes by Jeremy Lainé <jeremy.laine@m4x.org>
create_file_from_template() {
infile=$1
outfile=$2
+ if [ -f /etc/dbconfig-common/diogenes.conf ]; then
+ . /etc/dbconfig-common/diogenes.conf
+ fi
+ # If dbc_dbserver is empty, use localhost
+ if [ -z "$dbc_dbserver" ]; then
+ dbc_dbserver="localhost"
+ fi
# Password may contain anything, so we need to descend to quoting
# hell.
- safepass="$dbpass"
+ safepass="$dbc_dbpass"
# quote normal quote and final backslash because we need to write
# a single quoted PHP string
safepass=$(echo "$safepass" | sed -e "s/'/\\\\'/g" -e 's/\\$/\\\\'/)
# we use the hash sign as a delimiter
safepass=$(echo "$safepass" | sed -e 's/#/\\#/g')
sed -e " \
- s#@dbname@#$dbname#; \
- s#@dbserver@#$dbserver#; \
- s#@dbuser@#$dbuser#; \
+ s#@dbname@#$dbc_dbname#; \
+ s#@dbserver@#$dbc_dbserver#; \
+ s#@dbuser@#$dbc_dbuser#; \
s#@dbpass@#$safepass#; \
" <$infile >$outfile
}
+# get debconf started
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+dbc_first_version=0.9.20-2
+# source dbconfig-common shell library, and call the hook function
+if [ -f /usr/share/dbconfig-common/dpkg/postinst.mysql ]; then
+ . /usr/share/dbconfig-common/dpkg/postinst.mysql
+ dbc_go diogenes $@
+fi
case "$1" in
configure)
ucf --debconf-ok /usr/share/diogenes/config/diogenes.debian.inc.php /etc/diogenes/diogenes.debian.inc.php
ucf --debconf-ok /usr/share/diogenes/config/apache.conf /etc/diogenes/apache.conf
-# get debconf started
-. /usr/share/debconf/confmodule
-db_version 2.0
-
-###############################################################################
-############################### Configure database ############################
-###############################################################################
-
-# Type of the databasemgr to use.
-db_get "diogenes/databasemgr_type"
-dbtype="$RET"
-if [ "$dbtype" = "Automatic" ] ; then
- # Where it is located.
- db_get "diogenes/databasemgr_server"
- dbserver="$RET"
- # Name of the database
- db_get "diogenes/database_name"
- dbname="$RET"
- # Name of the user to have access.
- db_get "diogenes/database_user"
- dbuser="$RET"
- # Its password.
- db_get "diogenes/database_pass"
- dbpass="$RET"
-
- if [ ! -z $(which mysql) ]; then
-
- # retrieve admin user and password
- db_get "diogenes/dbmyadmin"
- dbadmin="$RET"
- db_get "diogenes/dbadmpass"
- dbadmpass="$RET"
- db_reset "diogenes/dbadmpass"
-
- . /usr/share/wwwconfig-common/mysql-createdb.sh
- if [ "$status" = "create" ] ; then
- sqlfile=/usr/share/diogenes/scripts/diogenes.tables.sql
- create_file_from_template $sqlfile.in $sqlfile
- . /usr/share/wwwconfig-common/mysql-exec.sh
- rm $sqlfile
- sqlfile=/usr/share/diogenes/scripts/diogenes.logactions.sql
- create_file_from_template $sqlfile.in $sqlfile
- . /usr/share/wwwconfig-common/mysql-exec.sh
- rm $sqlfile
- elif [ "$status" = "nothing" ] ; then
- if ! /usr/share/diogenes/scripts/updatedb.php -q -s "$dbserver" -d "$dbname" -u "$dbadmin" -p "$dbadmpass" ; then
- echo "There was an error while upgrading the Diogenes database."
- fi
- else
- echo $error
- fi
- . /usr/share/wwwconfig-common/mysql-createuser.sh
- else
- echo "Not configuring MySQL database because we cannot locate"
- echo "the mysql client executable (mysql-client package missing)."
- fi
-else
- echo "Not configuring MySQL database at your request."
-fi
-
-
###############################################################################
########################## Configure web servers ##############################
###############################################################################
for server in $webservers; do
server=$(echo $server | sed 's/,$//')
servers="$server $servers"
- # Make sure our web server has PHP support
- phpver=php4
- phpini=/etc/$phpver/$server/php.ini
- . /usr/share/wwwconfig-common/apache-php.sh
- if [ "$status" = "uncomment" ] ; then
- restart="$server $restart"
- elif [ "$status" = "error" ] ; then
- echo "Error while trying to enable $phpver support for '$server' : $error."
- fi
-
- # Make sure that PHP has MySQL support enabled
- checkextensions=mysql
- . /usr/share/wwwconfig-common/php-extensions.sh
-
includefile=/etc/diogenes/apache.conf
- # For old versions of Diogenes, remove the include of ourapache.conf
- if dpkg --compare-versions "$2" le-nl "0.9.9.3-6" ; then
- . /usr/share/wwwconfig-common/apache-uninclude_all.sh
- if [ "$status" = "uncomment" ] ; then
- restart="$server $restart"
- fi
- fi
-
+
# If necessary, add a symlink to our apache.conf
if [ -d /etc/$server/conf.d ] && [ ! -e /etc/$server/conf.d/diogenes ] ; then
ln -s $includefile /etc/$server/conf.d/diogenes
- restart="$server $restart"
+ restart_servers="$server $restart_servers"
fi
done
###############################################################################
############################# Servers restart #################################
###############################################################################
-if ! eval . /usr/share/wwwconfig-common/restart.sh ; then
- echo "There was a problem restarting web server(s)."
-fi
+if [ -n "$restart_servers" ]; then
+ for server in $restart_servers; do
+ if [ -x /etc/init.d/$server ]; then
+ if which invoke-rc.d >/dev/null 2>&1; then
+ invoke-rc.d $server reload
+ else
+ /etc/init.d/$server reload
+ fi
+ fi
+ done
+fi
;;
abort-upgrade|abort-remove|abort-deconfigure)