]> git.donarmstrong.com Git - roundcube.git/blob - debian/postinst
b7996ffe1a728d09e08f6e806649b7b718b7ddb3
[roundcube.git] / debian / 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 case "$1" in
21     configure)
22
23         CONFFILE=/etc/roundcube/main.inc.php
24         touch $CONFFILE.ucftmp
25         chmod 640 $CONFFILE.ucftmp
26
27         db_get roundcube/hosts || true
28         hosts="$RET"
29         if [ "$hosts" != "" ]; then
30             hosts="array(\"$(echo $hosts | sed 's/ /\",\"/g')\")"
31         else
32             hosts="''"
33         fi
34
35         db_get roundcube/language || true
36         language="$RET"
37
38         # Get current 3DES key from /etc/roundcube/main.inc.php
39         [ -f /etc/roundcube/main.inc.php ] && {
40             deskey=$(sed -n "s+^\$rcmail_config\['des_key'\] = '\(.*\)';\$+\1+p" \
41                 /etc/roundcube/main.inc.php)
42         }
43         # If this is the default key, forget it !
44         [ "$deskey" = "rcmail-!24ByteDESkey*Str" ] && unset deskey
45         # Generate a new one
46         while [ -z "$deskey" ]; do
47             deskey=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | \
48                 tr -c -d '[A-Za-z0-9]' | sed -n 's/\(.\{24\}\).*/\1/p')
49         done
50
51         # Put hosts, language and key in main.inc.php
52         zcat /usr/share/doc/roundcube/main.inc.php.dist.gz | \
53             sed -e "s+^\(\$rcmail_config\['default_host'\] = \)''\(;\)\$+\1${hosts}\2+" \
54                 -e "s+^\(\$rcmail_config\['des_key'\] = '\).*\(';\)\$+\1$deskey\2+" \
55                 -e "s+^\(\$rcmail_config\['locale_string'\] = '\).*\(';\)\$+\1${language}\2+" >> $CONFFILE.ucftmp
56
57         ucf --debconf-ok $CONFFILE.ucftmp $CONFFILE
58         chown root:www-data $CONFFILE
59         rm -f $CONFFILE.ucftmp
60         
61         # Handle webserver reconfiguration/restart ; stolen from zabbix package
62         db_get roundcube/reconfigure-webserver || true
63         webservers="$RET"
64         restart=""
65
66         for webserver in $webservers; do
67             webserver=${webserver%,}
68             test -x /usr/sbin/$webserver || continue
69         
70             if [ ! -f /etc/$webserver/conf.d/roundcube ] && [ ! -h /etc/$webserver/conf.d/roundcube ]; then
71                ln -s /etc/roundcube/apache.conf /etc/$webserver/conf.d/roundcube
72             fi
73             restart="$restart $webserver"
74         done
75
76         db_get roundcube/restart-webserver || true
77         res="$RET"
78         db_stop || true
79         if [ "$res" = "true" ]; then
80             for webserver in $restart; do
81                 webserver=${webserver%,}
82                 if [ -x /usr/sbin/invoke-rc.d ]; then
83                     invoke-rc.d $webserver restart
84                 else
85                     /etc/init.d/$webserver restart
86                 fi
87             done
88         fi
89
90         chown -R www-data:adm /var/log/roundcube
91         chmod -R 750 /var/log/roundcube
92         chown -R www-data:www-data /var/lib/roundcube/temp
93         chmod -R 750 /var/lib/roundcube/temp
94         chown www-data:adm /var/lib/roundcube/skins
95
96     ;;
97
98     abort-upgrade|abort-remove|abort-deconfigure)
99     ;;
100
101     *)
102         echo "postinst called with unknown argument \`$1'" >&2
103         exit 1
104     ;;
105 esac
106
107
108 #DEBHELPER#
109
110 exit 0
111
112