Code

bugfix: change !=~ expression to not =~
[gosa.git] / gosa-si / debian / gosa-si-server.postinst
index 93f10a20e430026e9b911530cfd0219eaab6a5c5..0affbd763ac59466e61909cc6f5dbd4dc3a13203 100644 (file)
@@ -1,14 +1,49 @@
 #!/bin/sh
 
+set -e
+
+. /usr/share/debconf/confmodule
+
+db_version 2.0
+
+for i in hostname database username password rootpw; do
+         db_get gosa-si/$i || true
+               eval $i'="$RET"'
+done
+
+host="127.0.0.1"
+
 #DEBHELPER#
 
 # We exit unless the package is being configured
 case "$1" in
-       abort*upgrade)         exit 0;;
-       abort*remove)          exit 0;;
-       abort*deconfigure)     exit 0;;
-       configure) ;;
-       *)                     exit 0;
+        abort*upgrade)         exit 0;;
+        abort*remove)          exit 0;;
+        abort*deconfigure)     exit 0;;
+        configure) ;;
+        *)                     exit 0;
 esac
 
-[ ! -d /etc/gosa-si/server/events ] && install -d -o root -g root -m 750 /etc/gosa-si/server/events
+# Setup database
+/usr/bin/mysqladmin -u root --password=$rootpw create "$database" &> /dev/null || true
+/usr/bin/mysql -u root --password=$rootpw -e "GRANT ALL PRIVILEGES ON $database.* to '$username'@'127.0.0.1' identified by '$password'"
+
+# Fix permission
+[ -f /etc/gosa-si/server.conf ] && chmod go-rwx /etc/gosa-si/server.conf
+
+# Apply DB settings to config file
+if [ -w /etc/gosa-si/server.conf ]; then
+  for i in database username password host; do
+    eval 'val=$'$i
+    grep -E "mysql-$i" /etc/gosa-si/server.conf | grep -vE '^ *#' &> /dev/null && sed -i "/\[server\]/,/\[/s/mysql-$i\s*=\s*\(.*\)$/mysql-$i = $val/g" /etc/gosa-si/server.conf || sed -i "
+/\[server\]/ a\
+mysql-$i = $val" /etc/gosa-si/server.conf
+  done
+fi
+
+# Restart daemon
+invoke-rc.d gosa-si restart
+
+db_stop
+
+exit 0