summaryrefslogtreecommitdiff
path: root/scripts/boot
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2012-06-05 15:45:40 +0200
committerDaniel Baumann <daniel@debian.org>2012-06-05 16:11:16 +0200
commit27ebf6d2b60a0ce4acac11794203c9ddc20706e2 (patch)
treee0d2d95923f6e27d1153c7c0eab54d233393eccc /scripts/boot
parent23c2e9f4947a2d9be6b63f55cca8e633df3455a3 (diff)
downloadlive-boot-27ebf6d2b60a0ce4acac11794203c9ddc20706e2.tar.gz
live-boot-27ebf6d2b60a0ce4acac11794203c9ddc20706e2.zip
Moving out live-functions from initramfs-tools specifics.
Diffstat (limited to 'scripts/boot')
-rwxr-xr-xscripts/boot/initramfs-tools.sh67
-rwxr-xr-xscripts/boot/misc-helpers.sh44
2 files changed, 111 insertions, 0 deletions
diff --git a/scripts/boot/initramfs-tools.sh b/scripts/boot/initramfs-tools.sh
new file mode 100755
index 0000000..37aa0c3
--- /dev/null
+++ b/scripts/boot/initramfs-tools.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+#set -e
+
+log_wait_msg ()
+{
+ # Print a message and wait for enter
+ if [ -x /bin/plymouth ] && plymouth --ping
+ then
+ plymouth message --text="$@"
+ plymouth watch-keystroke | read nunya
+ fi
+
+ _log_msg "Waiting: ${@} ... \n"
+}
+
+# Override maybe_break from scripts/functions
+maybe_break()
+{
+ if [ "${break}" = "$1" ]; then
+ # Call original panic
+ . /scripts/functions
+ panic "Spawning shell within the initramfs"
+ 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/boot.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-boot' 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-boot will now restart your system. "
+ else
+ printf " live-boot will now start a shell. "
+ fi
+ printf "The error message was:\n\n "
+
+ # Call original panic
+ . /scripts/functions
+ panic "$@"
+}
diff --git a/scripts/boot/misc-helpers.sh b/scripts/boot/misc-helpers.sh
index fe45ee1..3f2d7fb 100755
--- a/scripts/boot/misc-helpers.sh
+++ b/scripts/boot/misc-helpers.sh
@@ -2,6 +2,50 @@
#set -e
+really_export ()
+{
+ STRING="${1}"
+ VALUE="$(eval echo -n \${$STRING})"
+
+ if [ -f /live.vars ] && grep -sq "export ${STRING}" /live.vars
+ 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 "^#" /usr/share/live-boot/languagelist | cut -f1,3,6 -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
+}
+
is_in_list_separator_helper () {
local sep=${1}
shift