File: env2debconf

package info (click to toggle)
preseed 1.102
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 812 kB
  • sloc: sh: 435; perl: 153; makefile: 5
file content (64 lines) | stat: -rwxr-xr-x 1,399 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/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