#!/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" -le "$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