Print friendly error message on live-initramfs panic.
[live-boot-grml.git] / scripts / live-functions
index c5055a0..d86a3f6 100644 (file)
@@ -58,3 +58,46 @@ lang2locale() {
                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-devel@lists.alioth.debian.org>, making\n"
+       printf "  sure to note the exact version, name and distribution of the image you were\n"
+       printf "  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 "$@"
+}