Depend on the same live-boot-initramfs-tools/live-boot-backend version.
[live-boot-grml.git] / debian / live-boot.init
index 6c3e665..f0982a8 100644 (file)
@@ -49,7 +49,7 @@ cache_path()
        then
                if [ -x "${path}" ]
                then
-                       if file "${path}" | grep -q 'dynamically linked'
+                       if file -L "${path}" | grep -q 'dynamically linked'
                        then
                                for lib in $(ldd "${path}" | awk '{ print $3 }')
                                do
@@ -84,8 +84,7 @@ device_is_USB_flash_drive()
        [ "$(expr substr ${DEVICE} 1 2)" != "sd" ] && return 1
 
        # check that the device is an USB device
-       if readlink /sys/block/${DEVICE} | grep -q usb ||
-          readlink /sys/block/${DEVICE}/device | grep -q usb # linux < 2.6.29
+       if readlink /sys/block/${DEVICE} | grep -q usb
        then
                return 0
        fi
@@ -97,6 +96,7 @@ do_stop ()
 {
        if ! grep -qs nopersistent /proc/cmdline && grep -qs persistent /proc/cmdline
        then
+               # ROOTSNAP and HOMESNAP are defined in ${SNAPSHOT_CONF} file
                if [ ! -z "${ROOTSNAP}" ]
                then
                        ${DO_SNAPSHOT} --resync-string="${ROOTSNAP}"
@@ -114,6 +114,12 @@ do_stop ()
                return 0
        fi
 
+       # check for toram
+       if grep -qs toram /proc/cmdline
+       then
+               return 0
+       fi
+
        # Don't prompt to eject the SD card on Babbage board, where we reuse it
        # as a quasi-boot-floppy. Technically this uses a bit of ubiquity
        # (archdetect), but since this is mostly only relevant for
@@ -130,7 +136,7 @@ do_stop ()
        fi
 
        prompt=1
-       if grep -qs noprompt /proc/cmdline
+       if [ "${NOPROMPT}" = "Yes" ]
        then
                prompt=
        fi
@@ -149,6 +155,8 @@ do_stop ()
                esac
        done
 
+       mount -o remount,ro /live/cow
+
        if [ -z ${QUICKREBOOT} ]
        then
 
@@ -164,15 +172,26 @@ do_stop ()
                        # failes because they actually remember the
                        # "ejected" state even after reboot
                        MESSAGE="Please remove the USB flash drive"
+
+                       if [ "${NOPROMPT}" = "usb" ]
+                       then
+                               prompt=
+                       fi
+
                else
                        # ejecting is a very good idea here
-                       MESSAGE="Please remove the disc, close the the tray (if any)"
+                       MESSAGE="Please remove the disc, close the tray (if any)"
 
                        if [ -x /usr/bin/eject ]
                        then
                                eject -p -m /live/image >/dev/null 2>&1
                        fi
 
+                       if [ ${NOPROMPT} = "cd" ]
+                       then
+                               prompt=
+                       fi
+
                fi
 
                [ "$prompt" ] || return 0
@@ -216,8 +235,6 @@ case "${1}" in
                                [ "${VERBOSE}" != no ] && log_end_msg 1
                                ;;
                esac
-
-               mount -o remount,ro /live/cow
                ;;
 
        *)