#!/bin/sh -e
#export DEBCONF_DEBUG=developer
CONFIGFILE=/etc/dbmail/dbmail.conf
DEBIANCONF=/etc/default/dbmail
. /usr/share/debconf/confmodule
read_config() {
for line in `grep -E '^[^#$]' $CONFIGFILE|awk -F'#' '{print $1}'`; do
NEWSECTION=`echo $line|grep '^\['|sed 's/\(\[\)\(.*\)\(\]\)/\2/'`
if [ -n "$NEWSECTION" ]; then
SECTION=`echo $NEWSECTION|tr '[A-Z]' '[a-z]'`
else
key=`echo $line|cut -f1 -d'='`
val=`echo $line|cut -f2 -d'='`
eval "db_set dbmail/$SECTION/$key \"$val\"" || true
fi
done
}
init_config() {
if [ -e $CONFIGFILE ]; then
read_config
fi
if [ -e $DEBIANCONF ]; then
. $DEBIANCONF
# setup some defaults
db_set dbmail/start_imapd "false"
db_set dbmail/start_pop3d "false"
db_set dbmail/start_ssl "false"
db_set dbmail/pem_file "dbmail.pem"
# overwrite them with the values in the config file
[ "$START_IMAPD" ] && db_set dbmail/start_imapd "$START_IMAPD" || true
[ "$START_POP3D" ] && db_set dbmail/start_pop3d "$START_POP3D" || true
[ "$START_SSL" ] && db_set dbmail/start_ssl "$START_SSL" || true
[ "$PEM_FILE" ] && db_set dbmail/pem_file "$PEMFILE" || true
fi
}
db_capb backup
STATE=1
LASTSTATE=3
while [ 1 ]; do
[ "$STATE" = "0" ] && break
[ "$STATE" = "$LASTSTATE" ] && break
case "$STATE" in
1)
db_input medium dbmail/do_debconf || true
;;
2)
db_get dbmail/do_debconf
if [ "$RET" = "false" ]; then
break
fi
init_config
db_input medium dbmail/smtp/DBMAIL_FROM_ADDRESS || true
db_input medium dbmail/smtp/POSTMASTER || true
db_input medium dbmail/dbmail/host || true
db_input medium dbmail/dbmail/db || true
db_input medium dbmail/dbmail/user || true
db_input medium dbmail/dbmail/pass || true
db_input medium dbmail/start_imapd || true
db_input medium dbmail/start_pop3d || true
db_input medium dbmail/start_ssl || true
;;
3)
db_get dbmail/start_ssl
if [ "$RET" = "true" ]; then
db_input medium dbmail/pem_file || true
fi
;;
esac
if db_go; then
STATE=$(($STATE+1))
else
STATE=$(($STATE-1))
fi
done
exit 0
syntax highlighted by Code2HTML, v. 0.9.1