X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Flive-functions;h=4c37f4b330a0205ca34243e5620f5ecc7045142b;hb=c967ebfc4e43fb16a0c2c140c66900712be95ab7;hp=baa920c7660663c966a7cca4c0c2466f87f88560;hpb=fdd8036ba32ad88e83a61191cc4597ae060355d2;p=live-boot-grml.git diff --git a/scripts/live-functions b/scripts/live-functions index baa920c..4c37f4b 100644 --- a/scripts/live-functions +++ b/scripts/live-functions @@ -1,29 +1,19 @@ -#!/bin/sh . /scripts/functions . /live.vars -log_end_msg () -{ - # Override this so we don't call PROGRESS - if [ -x /sbin/usplash_write ] - then - /sbin/usplash_write "SUCCESS ok" - fi - - _log_msg "Done." -} - log_wait_msg () { # Print a message and wait for enter if [ -x /sbin/usplash_write ] then - /sbin/usplash_write "INPUTENTER $@" + /sbin/usplash_write "INPUTENTER ${@}" read nunya < /dev/.initramfs/usplash_outfifo - fi + else if [ -x /sbin/splashy_update ] ; then + /sbin/splashy_update "getstring ${@}" | read nunya + fi ; fi - _log_msg "Waiting: $@ ..." + _log_msg "Waiting: ${@} ... \n" } really_export () @@ -31,7 +21,7 @@ really_export () STRING="${1}" VALUE="$(eval echo -n \${$STRING})" - if [ -f /live.vars ] && cat /live.vars | grep -sq "export ${STRING}" + if [ -f /live.vars ] && grep -sq "export ${STRING}" /live.vars then sed -i -e 's/\('${STRING}'=\).*$/\1'${VALUE}'/' /live.vars else @@ -40,3 +30,97 @@ really_export () 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-initramfs/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 +} + +# 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/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 , 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 "$@" +} + +load_confmodule () +{ + # Only do this once + if [ -z "$DEBCONF_REDIR" ] + then + exec <&4 + export DEBIAN_HAS_FRONTEND=1 + export DEBCONF_REDIR=1 + fi + + . /root/usr/share/debconf/confmodule +}