view debian/config @ 393:e113df4af08b noffle

[svn] added debconf-2.0 dependency option
author godisch
date Sat, 24 May 2003 07:30:38 +0100
parents 36296f2b60e6
children 056d5fcb7f4b
line wrap: on
line source

#!/bin/sh
# $Id: config 503 2003-03-29 08:06:12Z godisch $

set -e
. /usr/share/debconf/confmodule
db_version 2.0
db_capb backup

server_config=/etc/news/noffle.conf
debian_config=/etc/default/noffle

# for backward compatibility = 1.1.2-1, since postinst is not run yet
if [ ! -e $server_config -a -e /etc/noffle.conf ]; then
	server_config=/etc/noffle.conf
fi
# for backward compatibility < 1.1.2-1
if [ ! -e $server_config -a ! -e $debian_config -a -e /etc/noffle/conf ]; then
	server_config=/etc/noffle/conf
	debian_config=/etc/noffle/conf.debian
fi

# are we using debconf?
db_input high noffle/debconf && db_go || :
db_get noffle/debconf
if [ "$RET" = false ]; then
	db_stop
	exit 0
fi

# read server port value from inetd.conf
port="`grep '[[:space:]]/usr/bin/noffle[[:space:]]' /etc/inetd.conf | head -n 1 | sed 's/^#<off># //;s/[[:space:]].*//' 2> /dev/null`" || :
if [ "$port" ]; then
	# read port value from debconf db
	db_get noffle/port
	# for upgrading from < 1.1.2
	[ "$RET" = 119 ] && RET=nntp || :
	# we need confirmation, if they differ
	[ "$port" = "$RET" ] || db_fset noffle/port seen false
	# write current port from inetd.conf into debconf db
	[ "$port" = "${port#\#}" ] && db_set noffle/port "$port" || :
fi

# read server, username, password, maxfetch, default-expire from $server_config
if [ -s "$server_config" ]; then
	db_get noffle/server
	server="`grep '^server' $server_config | head -n 1 | sed 's/^server[[:space:]]*//;s/[[:space:]].*//' 2> /dev/null`" || :
	[ "$server" = "$RET" ] || db_fset noffle/server seen false
	[ "$server" ] && db_set noffle/server "$server" || :

	db_get noffle/username
	server="`grep '^server' $server_config | head -n 1 | sed 's/^server[[:space:]]*//;s/[^[:space:]]*[[:space:]]*//;s/[[:space:]].*//' 2> /dev/null`" || :
	[ "$username" = "$RET" ] || db_fset noffle/username seen false
	[ "$username" ] && db_set noffle/username "$username" || :

	db_get noffle/password
	server="`grep '^server' $server_config | head -n 1 | sed 's/^server[[:space:]]*//;s/[^[:space:]]*[[:space:]]*//;s/[^[:space:]]*[[:space:]]*//;s/[[:space:]].*//' 2> /dev/null`" || :
	[ "$password" = "$RET" ] || db_fset noffle/password seen false
	[ "$password" ] && db_set noffle/password "$password" || :

	db_get noffle/maxfetch
	maxfetch="`grep '^max-fetch' $server_config | head -n 1 | sed 's/^max-fetch[[:space:]]*//' 2> /dev/null`" || :
	[ "$maxfetch" = "$RET" ] || db_fset noffle/maxfetch seen false
	[ "$maxfetch" ] && db_set noffle/maxfetch "$maxfetch" || :

	db_get noffle/default-expire
	defexpire="`grep '^default-expire' $server_config | head -n 1 | sed 's/^default-expire[[:space:]]*//' 2> /dev/null`" || :
	[ "$defexpire" = "$RET" ] || db_fset noffle/defexpire seen false
	[ "$defexpire" ] && db_set noffle/default-expire "$defexpire" || :
fi

# for backward compatibility < 1.1.2-1
if dpkg --compare-versions "$2" lt-nl 1.1.2; then
	db_get noffle/fetchmode
	case "$RET" in
		'via dialup') db_set noffle/fetchmode ppp;;
		'via permanent connection') db_set noffle/fetchmode cron;;
	esac
fi

# read NOFFLE_FETCHMODE from $debian_config
[ -s "$debian_config" ] && . $debian_config || :
[ "$NOFFLE_FETCHMODE" = ppp -o "$NOFFLE_FETCHMODE" = cron ] || \
if [ -x /usr/sbin/pppd ]; then
	NOFFLE_FETCHMODE=ppp
else
	NOFFLE_FETCHMODE=cron
fi
# do we need confirmation?
db_get noffle/fetchmode
[ "$NOFFLE_FETCHMODE" = "$RET" ] || db_fset noffle/fetchmode seen false

# input configuration using backup capability, see debconf-devel(8)
state=1
laststate=7
while [ "$state" -ge 0 -a "$state" -le "$laststate" ]; do
	case "$state" in
	0)	db_input high noffle/debconf || :
		;;
	1)	db_input low noffle/port || :
		;;
	2)	db_input high noffle/server || :
		;;
	3)	db_input medium noffle/username || :
		;;
	4)	db_get noffle/username
		[ "$RET" ] && db_input medium noffle/password || :
		;;
	5)	db_input medium noffle/fetchmode || :
		;;
	6)	db_input medium noffle/maxfetch || :
		;;
	7)	db_input low noffle/default-expire || :
		;;
	esac
	if db_go; then
		if [ "$state" -eq 0 ]; then
			db_get noffle/debconf
			[ "$RET" = true ] || break
		fi
		state=$(($state + 1))
	else
		state=0
	fi
done

db_stop
exit 0