#!/bin/sh
# Import foo/bar=baz from environment variables into the debconf db.
set -e
export DEBIAN_FRONTEND=none
. /usr/share/debconf/confmodule
NEWLINE='
'
OLDIFS=$IFS
IFS=$NEWLINE
for line in $(set); do
	var="${line%%=*}"
	val="${line#[!=]*=}"
	# support preseeding without forcing seen flag
	if [ "${var%\?}" != "$var" ]; then
		var="${var%\?}"
		seen=
	else
		seen=1
	fi
	# grep out the normal variables with no slashes
	varnoslash="${var##*/*}"
	if [ "$val" != "" ]; then
		if [ "$varnoslash" != "" ]; then
			var=$(grep "^$varnoslash[[:space:]]" /etc/preseed_aliases) || true
			var=${var#*[[:space:]]}
		fi
		if [ "$var" != "" ]; then
			owner="${var%:*}"
			if [ "$owner" = "$var" ]; then
				owner="d-i"
			fi
			var="${var#*:}"
			
			# remove single quotes from around value
			val="${val#\'}"
			val="${val%\'}"
			# remove double quotes (user can type those for values
			# with spaces)
			val="${val#\"}"
			val="${val%\"}"
			
			IFS=$OLDIFS
			if ! db_set "$var" "$val"; then
				db_register debian-installer/dummy "$var"
				db_set "$var" "$val"
				db_subst "$var" ID "$var"
			fi
			
			if db_metaget "$var" type; then
				type="$RET"
			else
				type=unknown
			fi
			echo "$owner $var $type $val" >> /var/lib/preseed/log

			if [ "$seen" ]; then
				db_fset "$var" seen true
			else
				echo "$owner $var seen false" >> /var/lib/preseed/log
			fi
			IFS=$NEWLINE
		fi
	fi
done
