Releasing debian version 1.236.2-1.
[live-boot-grml.git] / debian / live-initramfs.init
index f7ac223..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
@@ -156,30 +172,37 @@ do_stop ()
                                eject -p -m /live/image >/dev/null 2>&1
                        fi
 
-                       [ "$prompt" ] || return 0
                fi
 
-               stty sane < /dev/console
+               [ "$prompt" ] || return 0
 
-               echo -n -e "\n\n${MESSAGE} and press ENTER to continue:" > /dev/console
-
-               if [ -x /sbin/usplash_write ]
+               if [ -x /bin/plymouth ] && plymouth --ping
                then
-                       /sbin/usplash_write "TIMEOUT 86400"
-                       /sbin/usplash_write "TEXT-URGENT ${MESSAGE}"
-                       /sbin/usplash_write "TEXT-URGENT and press ENTER to continue"
-               fi
+                       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
 
-               read x < /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
+
+                       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
 
@@ -192,6 +215,8 @@ case "${1}" in
                                [ "${VERBOSE}" != no ] && log_end_msg 1
                                ;;
                esac
+
+               mount -o remount,ro /live/cow
                ;;
 
        *)