--- /dev/null
+#!/bin/sh
+
+# prereq header {{{
+# without this header booting will fail with:
+# "PANIC: Circular dependancy. Exiting."
+PREREQ=""
+prereqs()
+{
+ echo "$PREREQ"
+}
+case $1 in
+# get pre-requisites
+prereqs)
+ prereqs
+ exit 0
+ ;;
+esac
+# }}}
+
+# helper functions {{{
+
+if grep -qe debug -qe verbose /proc/cmdline 2>/dev/null ; then
+ echo "debug: scripts/init-top/grml running">/dev/console
+fi
+
+# get boot command line
+CMDLINE="$(cat /proc/cmdline)"
+
+# Simple shell grep
+stringinfile(){
+ case "$(cat $2)" in *$1*) return 0;; esac
+ return 1
+}
+
+# same for strings
+stringinstring(){
+ case "$2" in *$1*) return 0;; esac
+ return 1
+}
+
+# Reread boot command line; echo last parameter's argument or return false.
+getbootparam(){
+ stringinstring " $1=" "$CMDLINE" || return 1
+ result="${CMDLINE##*$1=}"
+ result="${result%%[ ]*}"
+ echo "$result"
+ return 0
+}
+
+# Check boot commandline for specified option
+checkbootparam(){
+ stringinstring " $1" "$CMDLINE"
+ return "$?"
+}
+
+if checkbootparam "nocolor" ; then
+ echo "Disabling colors in bootsequence as requested on commandline."
+ # Reset fb color mode
+ RESET="\e]R"
+ # ANSI COLORS
+ # Erase to end of line
+ CRE="\r\e[K"
+ # Clear and reset Screen
+ CLEAR="\ec"
+else
+ # Reset fb color mode
+ RESET="\e]R"
+ # ANSI COLORS
+ # Erase to end of line
+ CRE="\r\e[K"
+ # Clear and reset Screen
+ CLEAR="\ec"
+ # Normal color
+ NORMAL="\e[0;39m"
+ # RED: Failure or error message
+ RED="\e[1;31m"
+ # GREEN: Success message
+ GREEN="\e[1;32m"
+ # YELLOW: Descriptions
+ YELLOW="\e[1;33m"
+ # BLUE: System mesages
+ BLUE="\e[1;34m"
+ # MAGENTA: Found devices or drivers
+ MAGENTA="\e[1;35m"
+ # CYAN: Questions
+ CYAN="\e[1;36m"
+ # BOLD WHITE: Hint
+ WHITE="\e[1;37m"
+fi
+
+log_grml_failure_msg () {
+ echo -n " ${RED}*${NORMAL} $@"
+}
+
+# int log_grml_begin_message (char *message)
+log_grml_begin_msg () {
+ echo -n " ${GREEN}*${NORMAL} $@"
+}
+
+log_grml_warn_msg () {
+ echo -n " ${YELLOW}*${NORMAL} $@"
+}
+
+# int log_grml_end_message (int exitstatus)
+SUCCESS=" ${BLUE}[ ${GREEN}ok ${BLUE}]${NORMAL}"
+FAILED=" ${NORMAL}[${RED}fail${NORMAL}]"
+
+# }}}
+
+# welcome splash {{{
+
+DISTRI="$(getbootparam 'distri' 2>/dev/null)"
+
+if [ -r /etc/grml_version ] ; then
+ GRML_VERSION="$(cat /etc/grml_version)"
+fi
+
+if checkbootparam "quiet" ; then
+ echo -e "${CLEAR}"
+fi
+
+if [ -n "$DISTRI" ] ; then
+SPLASH="
+${RED} $DISTRI
+
+${WHITE}based on grml.org.
+
+${NORMAL}"
+else
+SPLASH="
+${RED} ____ ____ __ __ _
+${RED} / ___| _ \| \/ | |
+${RED} | | _| |_) | |\/| | |
+${RED} | |_| | _ <| | | | |___
+${RED} \____|_| \_\_| |_|_____|
+
+${WHITE}grml.org - Linux for sysadmins and texttool users.${NORMAL}"
+fi
+
+echo ""
+echo "${WHITE}Welcome to"
+echo "$SPLASH"
+echo
+
+if [ -n "$GRML_VERSION" ] ; then
+ log_grml_begin_msg "Running $GRML_VERSION"
+ echo
+fi
+
+# don't output anything if running with bootsplash feature
+if checkbootparam "splash" ; then
+ exec >/dev/null </dev/null 2>&1
+fi
+# }}}
+
+## /proc/cmdline handling {{{
+# No kernel messages while probing modules:
+if ! grep -qe debug -qe verbose /proc/cmdline 2>/dev/null ; then
+ [ -r /proc/sys/kernel/printk ] && echo "0" > /proc/sys/kernel/printk
+fi
+
+# Make sure we support squashfs:
+if ! grep -q squashfs /proc/filesystems ; then
+ modprobe -q squashfs || log_grml_failure_msg "Warning: looks like you do not have support for squashfs"
+fi
+
+if grep -q 'boot=live' /proc/cmdline 2>/dev/null ; then
+ log_grml_begin_msg "Finished early booting sequence." ; echo "$SUCCESS"
+ log_grml_begin_msg "Searching for GRML file, this might take a few seconds..."
+ echo
+fi
+## }}}
+
+# vim: foldmethod=marker expandtab ai ft=sh