Use grml-core for bootparameter handling.
[grml-etc.git] / etc / init.d / grml-reboot
index c5e737c..157d04f 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # Filename:      grml-reboot
 # Purpose:       reboot grml system
 # Authors:       grml-team (grml.org)
@@ -8,13 +8,15 @@
 
 export PATH=/sbin:/bin:/usr/bin:/usr/sbin
 
+. /usr/lib/grml/core.sh
 . /etc/grml_colors
 . /etc/grml/lsb-functions
 
 cd /
 
 # Clean input/output
-exec >/dev/console 2>&1 </dev/console
+CONSOLE=/dev/console
+[ -c "$CONSOLE" ] && exec >"$CONSOLE" 2>&1 <"$CONSOLE"
 
 # default variables
 INSTALLED=false
@@ -22,16 +24,15 @@ REMOVABLE=false
 USB_DEVICE=false
 NOPROMPT=${NOPROMPT:-false}
 NOEJECT=${NOEJECT:-false}
-CMDLINE="$(cat /proc/cmdline 2>/dev/null)"
 
 # Check if we are running from a GRML-CD or HD
 [ -e /etc/grml_cd ] || INSTALLED=true
 
 # Assume that we don't want the eject+prompt stuff when running in one
 # of the special modes:
-grep -qe 'toram' -qe '2ram' -qe 'usb' -qe 'serial' \
-     -qe 'fromhd' -qe 'isofrom' -qe 'fromiso' -qe 'findiso' \
-     /proc/cmdline && INSTALLED=true
+checkbootparam 'toram'   || checkbootparam '2ram' || checkbootparam 'usb' \
+checkbootparam 'serial'  || checkbootparam 'fromhd' || checkbootparam 'isofrom' \
+checkbootparam 'fromiso' || checkbootparam  'findiso' && INSTALLED=true
 
 # detect cdrom device
 if ! $INSTALLED ; then
@@ -48,14 +49,14 @@ if ! $INSTALLED ; then
    DEVICE=""
    if [ -n "$CDROM" ] ; then
      DEVICE="${CDROM##/dev/}"
-     DEVICE="${DEVICE%%[0-9]*}"
+     [ -d /sys/block/${DEVICE} ] || DEVICE="${DEVICE%%[0-9]*}"
 
      if [ -n "$DEVICE" ] ; then
        # is it a removable device?
        [ "$(cat /sys/block/${DEVICE}/removable 2>/dev/null)" = "1" ] && REMOVABLE=true
        # is it a usb device?
        readlink /sys/block/${DEVICE} 2>/dev/null | grep -q '/usb' && USB_DEVICE=true
-       $USB_DEVICE && USB_INFO="$(cat /sys/block/${DEVICE}/device/model 2>/dev/null)"
+       $USB_DEVICE && USB_INFO=" ($(cat /sys/block/${DEVICE}/device/model 2>/dev/null))"
      fi
    fi
 fi