X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=debian%2Fdiogenes.postinst;h=889b65d1fb6092f3bcc07b0f01d953fa31ffee6d;hb=7e17ed7462e2978bc760a11661a75bae5ab0beb4;hp=49db604cf14cff6ff08682f0a476a67588a64f3a;hpb=f3a0e7f138048b6d78f2a659754437870f75e0fc;p=diogenes.git diff --git a/debian/diogenes.postinst b/debian/diogenes.postinst index 49db604..889b65d 100644 --- a/debian/diogenes.postinst +++ b/debian/diogenes.postinst @@ -1,5 +1,5 @@ #! /bin/sh -# Horde postinst script using debconf +# Diogenes postinst script using debconf and dbconfig-common # Written by Ola Lundqvist # Adapted for Horde2 by Nils Rennebarth # Adapted for Diogenes by Jeremy Lainé @@ -30,9 +30,16 @@ set -e 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/\\$/\\\\'/) @@ -42,13 +49,22 @@ create_file_from_template() { # 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 + +# 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) @@ -57,67 +73,6 @@ case "$1" in 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 ############################## ############################################################################### @@ -133,7 +88,7 @@ for server in $webservers; do # 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 @@ -163,10 +118,18 @@ chown -R $webuser /var/spool/diogenes ############################################################################### ############################# 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)