diff options
author | Daniel Baumann <daniel@debian.org> | 2012-06-05 15:45:40 +0200 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2012-06-05 16:11:16 +0200 |
commit | 27ebf6d2b60a0ce4acac11794203c9ddc20706e2 (patch) | |
tree | e0d2d95923f6e27d1153c7c0eab54d233393eccc /scripts/boot | |
parent | 23c2e9f4947a2d9be6b63f55cca8e633df3455a3 (diff) | |
download | live-boot-27ebf6d2b60a0ce4acac11794203c9ddc20706e2.tar.gz live-boot-27ebf6d2b60a0ce4acac11794203c9ddc20706e2.zip |
Moving out live-functions from initramfs-tools specifics.
Diffstat (limited to 'scripts/boot')
-rwxr-xr-x | scripts/boot/initramfs-tools.sh | 67 | ||||
-rwxr-xr-x | scripts/boot/misc-helpers.sh | 44 |
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 |