363258de7c4947232e6b51f6507b9755e8f12c7b
[citadel.git] / citadel / debian / citadel-server.postinst
1 #!/bin/sh
2 # postinst script for citadel-server
3
4 set -e
5
6 # source debconf stuff
7 . /usr/share/debconf/confmodule
8 db_version 2.0
9
10 move_file()
11 {
12         [ ! -f $1 ] && return
13         [ -f $2 ] && return
14         mv -f $1 $2
15 }
16
17 case "$1" in
18     configure)
19         chown -R citadel:citadel /etc/citadel
20         chown -R citadel:citadel /var/lib/citadel /var/spool/citadel
21         move_file /var/run/refcount_adjustments.dat /etc/citadel/data/refcount_adjustments.dat
22         move_file /etc/citadel/citadel.control /var/lib/citadel/data/citadel.control
23         move_file /etc/citadel/citadel.config /var/lib/citadel/data/citadel.config
24
25         db_get citadel/Administrator &&      admin="$RET"
26         db_get citadel/ServerIPAddress &&    ip_addr="$RET"
27         db_get citadel/LoginType &&          deb_enable_unix_auth="$RET"
28         db_get citadel/LDAPServer &&         LDAP_HOST="$RET"; export LDAP_HOST
29         db_get citadel/LDAPServerPort &&     LDAP_PORT="$RET"; export LDAP_PORT
30         db_get citadel/LDAPBaseDN &&         LDAP_BASE_DN="$RET"; export LDAP_BASE_DN
31         db_get citadel/LDAPBindDN &&         LDAP_BIND_DN="$RET"; export LDAP_BIND_DN
32         db_get citadel/LDAPBindDNPassword && LDAP_BIND_PW="$RET"; export LDAP_BIND_PW
33
34
35         export IP_ADDR=$ip_addr
36         export CITADEL='/var/run/citadel'
37         export CITADEL_PORT=504
38         export CITADEL_INSTALLER=yes
39          export CITADEL_UID=`grep citadel /etc/passwd | cut -d :  -f 3`
40         export ACT_AS_MTA=no
41         export SYSADMIN_NAME=$admin
42         export CREATE_XINETD_ENTRY=no
43         export CREATE_INITTAB_ENTRY=no
44         export NO_INIT_SCRIPTS=yes
45
46 #This is not debian conformant, and uniq to the citadel.org debs.
47         export ALTER_ETC_SERVICES=yes
48 #
49         if test -S /var/run/citadel/citadel.socket; then 
50             /usr/sbin/sendcommand "DOWN"
51         fi
52         while test -S /var/run/citadel/citadel.socket; do 
53             sleep 1
54         done
55         if test ! -f /var/lib/citadel/data/citadel.control -a -f /etc/citadel/citadel.control; then
56             mv /etc/citadel/citadel.control /var/lib/citadel/data/
57             mv /etc/citadel/citadel.config /var/lib/citadel/data/
58         fi
59
60         echo -n "applying your settings.... "
61         /usr/lib/citadel-server/setup -q
62         echo "done"
63         # we're in a fresh install, so we send the welcome message.
64         if test -z "$2"; then
65             echo "migrating mail aliases from other mailers"
66             /usr/lib/citadel-server/migrate_aliases.sh /etc/citadel/mail.aliases
67             i=0;
68             while test ! -S /var/run/citadel/lmtp.socket -a "$i" -lt "10"; do
69                 sleep 1
70                 i=$(($i + 1))
71             done
72             if test -S /var/run/citadel/lmtp.socket ; then
73                 echo "sending welcome mail"
74                 export SEPERATOR=2600908b3f21ae7f692b973ed26e212d
75                 export WELCOMEHTML=/usr/share/doc/citadel-server/welcomemail.html
76                 export WELCOMETXT=/usr/share/doc/citadel-server/welcomemail.txt
77                 export FROM=room_citadel_stats@uncensored.citadel.org
78                 export TO=room_lobby
79                 (
80                     printf "MIME-Version: 1.0\r\nContent-Type: multipart/alternative; \r\n boundary=$SEPERATOR\r\n\r\nThis is a multi-part message in MIME format.\r\n\r\n--$SEPERATOR\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n"; 
81                     cat $WELCOMETXT
82                     printf "\r\n\r\n--$SEPERATOR\r\nContent-Type: text/html; charset=US-ASCII\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n"
83                     cat $WELCOMEHTML; 
84                     printf "\r\n\r\n--$SEPERATOR--\r\n\r\n") | \
85                         /usr/sbin/citmail -bm -r "$FROM" "$TO"
86             fi
87         fi
88
89         if test -S /var/run/citadel/citadel.socket; then 
90             /usr/sbin/sendcommand "DOWN"
91         fi
92
93         while test -S /var/run/citadel/citadel.socket; do 
94             sleep 1
95         done
96
97         db_stop
98     ;;
99
100     abort-upgrade|abort-remove|abort-deconfigure)
101     ;;
102
103     *)
104         echo "postinst called with unknown argument \`$1'" >&2
105         exit 1
106     ;;
107 esac
108
109 #DEBHELPER#
110
111 exit 0