#!/bin/sh -e #export DEBCONF_DEBUG=developer CONFIGFILE=/etc/dbmail/dbmail.conf DEBIANCONF=/etc/default/dbmail MAILNAMEFILE=/etc/mailname . /usr/share/debconf/confmodule read_config() { for line in `grep -E '^[^# $]' $CONFIGFILE|sed 's/[\t ]//g'|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'='|tr '[A-Z]' '[a-z]'` val=`echo $line|cut -f2- -d'='` if [ -n "$val" ]; then eval "db_set dbmail/$SECTION/$key \"$val\"" || true fi fi done } get_hostname() { HOSTNAME=localdomain if [ -e $MAILNAMEFILE ]; then HOSTNAME=`cat $MAILNAMEFILE` else HOSTNAME=`hostname --fqdn 2>/dev/null` fi } init_config() { if [ -e $CONFIGFILE ]; then read_config fi db_get dbmail/dbmail/postmaster if [ -z $RET ]; then get_hostname db_set dbmail/dbmail/postmaster "postmaster@$HOSTNAME" fi if [ -e $DEBIANCONF ]; then . $DEBIANCONF # setup some defaults db_set dbmail/start_imapd "false" db_set dbmail/start_lmtpd "false" db_set dbmail/start_pop3d "false" db_set dbmail/start_sieve "false" # overwrite them with the values in the config file [ "$START_IMAPD" ] && db_set dbmail/start_imapd "$START_IMAPD" || true [ "$START_LMTPD" ] && db_set dbmail/start_lmtpd "$START_LMTPD" || true [ "$START_POP3D" ] && db_set dbmail/start_pop3d "$START_POP3D" || true [ "$START_SIEVE" ] && db_set dbmail/start_sieve "$START_SIEVE" || true fi } db_capb backup STATE=1 LASTSTATE=5 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/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/dbmail/postmaster || true db_input medium dbmail/start_lmtpd || true db_input medium dbmail/start_imapd || true db_input medium dbmail/start_pop3d || true db_input medium dbmail/start_sieve || true db_input medium dbmail/dbmail/authdriver || true ;; 3) db_get dbmail/dbmail/authdriver if [ "$RET" = "sql" ]; then break fi db_input medium dbmail/ldap/hostname || true db_input medium dbmail/ldap/port || true db_input medium dbmail/ldap/base_dn || true db_input low dbmail/ldap/field_uid|| true db_input low dbmail/ldap/field_cid || true db_input medium dbmail/ldap/bind_anonymous || true ;; 4) db_get dbmail/ldap/bind_anonymous if [ "$RET" = "true" ]; then break fi db_input medium dbmail/ldap/bind_dn || true db_input medium dbmail/ldap/bind_pw || true ;; esac if db_go; then STATE=$(($STATE+1)) else STATE=$(($STATE-1)) fi done exit 0