]> git.donarmstrong.com Git - roundcube.git/blob - debian/roundcube-core.postinst
Merge commit 'upstream/0.2.2' into unstable-import
[roundcube.git] / debian / roundcube-core.postinst
1 #!/bin/sh
2 # postinst script for roundcube
3 #
4 # see: dh_installdeb(1)
5
6 set -e
7
8 . /usr/share/debconf/confmodule
9 . /usr/share/dbconfig-common/dpkg/postinst 
10 dbc_generate_include=php:/etc/roundcube/debian-db.php
11 dbc_generate_include_owner="www-data:www-data"
12 dbc_generate_include_perms="660"
13 dbc_dbfile_owner="www-data:www-data"
14 dbc_dbfile_perms="0660"
15 dbc_dbuser=roundcube
16 dbc_dbname=roundcube
17
18 dbc_go roundcube $@
19
20 lighttpd_install() {
21         if [ ! -f /etc/lighttpd/conf-available/50-roundcube.conf ] ; then
22                 if [ ! -x /usr/sbin/lighty-enable-mod ] ; then
23                         echo "Lighttpd not installed, skipping"
24                 else
25                         ln -s /etc/roundcube/lighttpd.conf /etc/lighttpd/conf-available/50-roundcube.conf
26                         lighty-enable-mod roundcube
27                 fi
28         fi
29 }
30
31 apache_install() {
32         webserver=$1
33         if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/roundcube ]; then
34                ln -s /etc/roundcube/apache.conf /etc/$webserver/conf.d/roundcube
35         fi
36 }
37
38
39 case "$1" in
40     configure)
41
42         CONFFILE=/etc/roundcube/main.inc.php
43         touch $CONFFILE.ucftmp
44         chmod 640 $CONFFILE.ucftmp
45
46         db_get roundcube/hosts || true
47         hosts="$RET"
48         if [ "$hosts" != "" ]; then
49             hosts="array(\"$(echo $hosts | sed 's/ /\",\"/g')\")"
50         else
51             hosts="''"
52         fi
53
54         db_get roundcube/language || true
55         language="$RET"
56
57         # Get current 3DES key from /etc/roundcube/main.inc.php
58         [ -f /etc/roundcube/main.inc.php ] && {
59             deskey=$(sed -n "s+^\$rcmail_config\['des_key'\] = '\(.*\)';\$+\1+p" \
60                 /etc/roundcube/main.inc.php)
61         }
62         # If this is the default key, forget it !
63         [ "$deskey" = "rcmail-!24ByteDESkey*Str" ] && unset deskey
64         # Generate a new one
65         while [ -z "$deskey" ]; do
66             deskey=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | \
67                 tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p')
68         done
69
70         # Put hosts, language and key in main.inc.php
71         cat /usr/share/roundcube/main.inc.php.dist | \
72             sed -e "s+^\(\$rcmail_config\['default_host'\] = \)''\(;\)\$+\1${hosts}\2+" \
73                 -e "s+^\(\$rcmail_config\['des_key'\] = '\).*\(';\)\$+\1$deskey\2+" \
74                 -e "s+^\(\$rcmail_config\['locale_string'\] = '\).*\(';\)\$+\1${language}\2+" >> $CONFFILE.ucftmp
75
76         ucf --debconf-ok $CONFFILE.ucftmp $CONFFILE
77         chown root:www-data $CONFFILE
78         rm -f $CONFFILE.ucftmp
79         
80         # Handle webserver reconfiguration/restart ; stolen from zabbix package
81         db_get roundcube/reconfigure-webserver || true
82         webservers="$RET"
83         restart=""
84
85         for webserver in $webservers; do
86             webserver=${webserver%,}
87             if [ "$webserver" = "lighttpd" ] ; then
88                 lighttpd_install
89             else
90                 apache_install $webserver
91             fi
92             test -x /usr/sbin/$webserver || continue
93             restart="$restart $webserver"
94         done
95
96         db_get roundcube/restart-webserver || true
97         res="$RET"
98         db_stop || true
99         if [ "$res" = "true" ]; then
100             for webserver in $restart; do
101                 webserver=${webserver%,}
102                 # Redirection of 3 is needed because Debconf uses it and it might
103                 # be inherited by webserver. See bug #446324.
104                 if [ -x /usr/sbin/invoke-rc.d ]; then
105                     invoke-rc.d $webserver reload 3>/dev/null || true
106                 else
107                     /etc/init.d/$webserver reload 3>/dev/null || true
108                 fi
109             done
110         fi
111
112         chown -R www-data:adm /var/log/roundcube
113         chmod -R 750 /var/log/roundcube
114         chown -R www-data:www-data /var/lib/roundcube/temp
115         chmod -R 750 /var/lib/roundcube/temp
116         chown www-data:adm /var/lib/roundcube/skins
117
118     ;;
119
120     abort-upgrade|abort-remove|abort-deconfigure)
121     ;;
122
123     *)
124         echo "postinst called with unknown argument \`$1'" >&2
125         exit 1
126     ;;
127 esac
128
129
130 #DEBHELPER#
131
132 exit 0
133
134