Releasing debian version 1.236.2-1.
[live-boot-grml.git] / debian / live-initramfs.init
index 294355d..ac7cd8e 100644 (file)
@@ -3,10 +3,11 @@
 ### BEGIN INIT INFO
 # Provides:            live-initramfs
 # Required-Start:      $syslog
-# Required-Stop:       $syslog
+# Required-Stop:
 # Should-Start:                $local_fs
-# Should-Stop:         $local_fs
-# Default-Start:       1 2 3 4 5
+# Should-Stop:         halt reboot
+# X-Stop-After:                umountroot
+# Default-Start:
 # Default-Stop:                0 6
 # Short-Description:   live-initramfs init script
 # Description:         Resyncs snapshots, evantually caches files in order to
@@ -115,13 +116,28 @@ do_stop ()
                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
+       # installations, who cares ...
+       if type archdetect >/dev/null 2>&1
+       then
+               subarch="$(archdetect)"
+
+               case $subarch in
+                       arm*/imx51)
+                               return 0
+                               ;;
+               esac
+       fi
+
        prompt=1
        if grep -qs noprompt /proc/cmdline
        then
                prompt=
        fi
 
-       for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty)
+       for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty) /bin/plymouth /sbin/usplash_write
        do
                cache_path "${path}"
        done
@@ -137,11 +153,6 @@ do_stop ()
 
        if [ -z ${QUICKREBOOT} ]
        then
-               # in order to deal with the aufs unmount problem, we do a sync here.
-               sync
-               sleep 1
-               sync
-
                # TODO: i18n
                BOOT_DEVICE="$(get_boot_device)"
 
@@ -165,27 +176,33 @@ do_stop ()
 
                [ "$prompt" ] || return 0
 
-               stty sane < /dev/console
+               if [ -x /bin/plymouth ] && plymouth --ping
+               then
+                       plymouth message --text="${MESSAGE} and press ENTER to continue:"
+                       plymouth watch-keystroke > /dev/null
+               else
+                       stty sane < /dev/console
 
-               printf "\n\n${MESSAGE} and press ENTER to continue:" > /dev/console
+                       printf "\n\n${MESSAGE} and press ENTER to continue:" > /dev/console
 
-               if [ -x /sbin/usplash_write ]
-               then
-                       /sbin/usplash_write "TIMEOUT 86400"
-                       /sbin/usplash_write "TEXT-URGENT ${MESSAGE}"
-                       /sbin/usplash_write "TEXT-URGENT and press ENTER to continue"
-               fi
+                       if [ -x /sbin/usplash_write ]
+                       then
+                               /sbin/usplash_write "TIMEOUT 86400"
+                               /sbin/usplash_write "TEXT-URGENT ${MESSAGE}"
+                               /sbin/usplash_write "TEXT-URGENT and press ENTER to continue"
+                       fi
 
-               read x < /dev/console
+                       read x < /dev/console
+               fi
        fi
 }
 
 case "${1}" in
-       start|restart|reload|force-reload|status)
+       restart|reload|force-reload|status)
                [ "${VERBOSE}" != no ] && log_end_msg 0
                ;;
 
-       stop)
+       start|stop)
                log_begin_msg "${NAME} is resyncing snapshots and caching reboot files..."
                do_stop