summaryrefslogtreecommitdiff
path: root/scripts/live-functions
blob: 7028843ceb336798e7a0f241137909f91974f2b3 (plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144

. /scripts/functions
. /live.vars

# Override log_*_msg until #494257 is merged

_log_msg()
{
	if [ "$quiet" = "y" ]; then return; fi
	printf "$@"
}

log_success_msg()
{
	_log_msg "Success: $@\n"
}

log_failure_msg()
{
	_log_msg "Failure: $@\n"
}

log_warning_msg()
{
	_log_msg "Warning: $@\n"
}

log_begin_msg()
{
	if [ -x /sbin/usplash_write ]; then
		/sbin/usplash_write "TEXT $@"
	fi
	_log_msg "Begin: $@ ... "
}

log_end_msg()
{
	if [ -x /sbin/usplash_write ]; then
		/sbin/usplash_write "SUCCESS ok"
	fi
	_log_msg "done.\n"
}

##

log_wait_msg ()
{
	# Print a message and wait for enter
	if [ -x /sbin/usplash_write ]
	then
		/sbin/usplash_write "INPUTENTER ${@}"
		read nunya < /dev/.initramfs/usplash_outfifo
	else if [ -x /sbin/splashy_update ] ; then
		/sbin/splashy_update "getstring ${@}" | read nunya
	fi ; fi

	_log_msg "Waiting: ${@} ... \n"
}

really_export ()
{
	STRING="${1}"
	VALUE="$(eval echo -n \${$STRING})"

	if [ -f /live.vars ] && cat /live.vars | grep -sq "export ${STRING}"
	then
		sed -i -e 's/\('${STRING}'=\).*$/\1'${VALUE}'/' /live.vars
	else
		echo "export ${STRING}=\"${VALUE}\"" >> /live.vars
	fi

	eval export "${STRING}"="${VALUE}"
}

lang2locale() {
	langpart="${1%%_*}"
	if [ "$1" != "C" ]; then
		# Match the language code with 3rd field in languagelist
		line=$(grep -v "^#" /root/usr/share/live-initramfs/languagelist | cut -f3,4,5 -d\; | grep -v ';C$' | grep "^$langpart;")
		if [ -n "$line" ]; then
			if [ "$(echo "$line" | grep -c '')" -gt 1 ]; then
				# More than one match; try matching the
				# country as well.
				countrypart="${1#*_}"
				if [ "$countrypart" = "$1" ]; then
					countryline="$(echo "$line" | head -n1)"
					echo "${countryline##*;}"
					return
				fi
				countrypart="${countrypart%%[@.]*}"
				countryline="$(echo "$line" | grep ";$countrypart;" | head -n1 || true)"
				if [ "$countryline" ]; then
					echo "${countryline##*;}"
					return
				fi
			fi
			echo "${line##*;}"
		fi
	else
		echo "C"
	fi
}

# Override panic from scripts/functions
panic() {

	DEB_1="\033[1;31m .''\`.  \033[0m"
	DEB_2="\033[1;31m: :'  : \033[0m"
	DEB_3="\033[1;31m\`. \`'\`  \033[0m"
	DEB_4="\033[1;31m  \`-    \033[0m"

	LIVELOG="\033[1;37m/live.log\033[0m"
	DEBUG="\033[1;37mdebug\033[0m"

	# Reset redirections to avoid buffering
	exec 1>&6 6>&-
	exec 2>&7 7>&-
	kill ${tailpid}

	printf "\n\n"
	printf "     ${DEB_1}\n"
	printf "     ${DEB_2}  \033[1;37mBOOT FAILED!\033[0m\n"
	printf "     ${DEB_3}\n"
	printf "     ${DEB_4}  This Debian Live image failed to boot.\n\n"

	printf "  Please file a bug against the 'live-initramfs' package or email the Debian\n"
	printf "  Live mailing list at <debian-live@lists.debian.org>, making sure to note the\n"
	printf "  exact version, name and distribution of the image you were attempting to boot.\n\n"

	printf "  The file ${LIVELOG} contains some debugging information but booting with the\n"
	printf "  ${DEBUG} command-line parameter will greatly increase its verbosity which is\n"
	printf "  extremely useful when diagnosing issues.\n\n"

	if [ -n "${panic}" ]; then
		printf "  live-initramfs will now restart your system. "
	else
		printf "  live-initramfs will now start a shell. "
	fi
	printf "The error message was:\n\n    "

	# Call original panic
	. /scripts/functions
	panic "$@"
}