Always execute grml-quickconfig if available.
[grml-scripts.git] / usr_bin / zsh-login
index 646ab3c..e32a17a 100755 (executable)
@@ -1,19 +1,88 @@
-#!/bin/sh
+#!/bin/bash
 # Filename:      zsh-login
-# Purpose:       run zsh with login option
+# Purpose:       customized zsh login welcome screen for use at grml
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Sam Feb 17 13:58:14 CET 2007 [mika]
 ################################################################################
 
+. /etc/grml/sh-lib
+
 [ -r /etc/grml_version ] && GRMLVERSION=$(cat /etc/grml_version) || GRMLVERSION='(no version information available)'
+PATH=$HOME/bin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/games:/home/grml/bin
+CMDLINE=$(cat /proc/cmdline)
+[ -n "$distri" ] || distri="grml"
+
+# Activate unicode console if running within utf8 environment
+# Dirty hack to fix unicode issue on amd64...
+# unicode_start during bootprocess just does not work reliable :(
+NUM_CONSOLES=12
+if [ -r /etc/default/locale ] ; then
+   if grep -q "LANG=.*UTF" /etc/default/locale ; then
+       for vc in `seq 1 ${NUM_CONSOLES}` ; do
+           echo -n -e '\033%G' > /dev/tty${vc}
+       done
+       kbd_mode -u
+       dumpkeys | loadkeys --unicode > /dev/null
+   fi
+fi
+
+case "$CMDLINE" in
+   # allow customized startup via bootoption startup:
+   *startup=*)
+       script="$(getBootParam startup)"
+       if [ -x $(which $script) ] ; then
+          $script
+       fi
+       ;;
+   # turn on speakers for accessibility users:
+   *\ swspeak*|*blind*|*brltty*|*speakup*)
+      if [ $(which flite) ] ; then
+         flite -o play -t "Finished booting"
+      fi
+      ;;
 
-echo "
+   # do nothing if booting with bootoption noquick:
+   *\ noquick*)
+      ;;
+   *) # by default run grml-quickconfig, but only if running as root
+      if [ "$(id -u)" = "0" ] ; then
+         which grml-quickconfig &>/dev/null && grml-quickconfig
+      fi
+esac
 
-Welcome to grml ${GRMLVERSION}!
+# just print out an empty line if bootoption "nowelcome" is present
+if grep -q nowelcome /proc/cmdline 2>/dev/null ; then
+  echo
+# ... otherwise allow customized release information
+elif [ -r /etc/release_info ] ; then
+  cat /etc/release_info
+else # ... or finally fall back to grml's default
+  # display version information depending on the version:
+  if grep -q -- '-rc[0-9]' /etc/grml_version 2>/dev/null ; then
+     echo
+     echo
+     echo 'NOTICE: This is a release candidate version!'
+     echo 'Please notice that this is not yet a stable release.'
+     echo 'See http://wiki.grml.org/doku.php?id=release_candidate for known issues.'
+     echo 'Please report any bugs you notice: bugs@grml.org'
+     echo
+  fi
 
-New to grml? Want to read some documentation?
+  if grep -q 'grml-live-autobuild' /etc/grml_version 2>/dev/null ; then
+     echo
+     echo
+     echo 'NOTICE: This is a daily snapshot version!'
+     echo 'Please notice that this is not yet a stable release.'
+     echo 'See http://daily.grml.org/ for more details.'
+     echo 'Please report any bugs you notice: daily@grml.org'
+     echo
+  fi
+
+  echo "
+Welcome to ${GRMLVERSION}!
+
+New to ${distri}? Want to read some documentation?
 Start via running 'grml-info'.
 Get tips and hints via 'grml-tips \$KEYWORD'.
 New to zsh? Run 'zsh-help'.
@@ -22,14 +91,6 @@ Switch to other consoles via alt-F<number> keys.
 
 Happy hacking!               http://grml.org/
 "
-
-[ -r /etc/release_info ] && cat /etc/release_info
-
-if [ -x /usr/bin/flite ] ; then
- CMDLINE=$(cat /proc/cmdline)
- case "$CMDLINE" in
-   *swspeak*|*blind*|*brltty*|*speakup*) flite -o play -t "Finished booting" ;;
- esac
 fi
 
 exec /bin/zsh -l