diff -Nru friendly-recovery-0.2.22/debian/changelog friendly-recovery-0.2.23/debian/changelog --- friendly-recovery-0.2.22/debian/changelog 2012-02-09 22:03:53.000000000 +0000 +++ friendly-recovery-0.2.23/debian/changelog 2012-02-10 04:17:19.000000000 +0000 @@ -1,3 +1,12 @@ +friendly-recovery (0.2.23) precise; urgency=low + + * Upload the right version of recovery-menu + (previous upload was a debug version ...) + * Better handle the fsck case by having it be a one-time option that + can only be triggered from read-only mode. + + -- Stéphane Graber Thu, 09 Feb 2012 23:15:58 -0500 + friendly-recovery (0.2.22) precise; urgency=low * Rework of the menu diff -Nru friendly-recovery-0.2.22/lib/recovery-mode/options/fsck friendly-recovery-0.2.23/lib/recovery-mode/options/fsck --- friendly-recovery-0.2.22/lib/recovery-mode/options/fsck 2012-02-09 21:49:04.000000000 +0000 +++ friendly-recovery-0.2.23/lib/recovery-mode/options/fsck 2012-02-10 04:03:53.000000000 +0000 @@ -3,9 +3,6 @@ . /lib/recovery-mode/l10n.sh if [ "$1" = "test" ]; then - if [ "$2" = "mode" ]; then - exit 1 - fi echo $(eval_gettext "Check all file systems") exit 0 fi diff -Nru friendly-recovery-0.2.22/lib/recovery-mode/recovery-menu friendly-recovery-0.2.23/lib/recovery-mode/recovery-menu --- friendly-recovery-0.2.22/lib/recovery-mode/recovery-menu 2012-02-09 21:53:24.000000000 +0000 +++ friendly-recovery-0.2.23/lib/recovery-mode/recovery-menu 2012-02-10 04:12:37.000000000 +0000 @@ -12,7 +12,6 @@ # main READONLY=true -export READONLY while true; do unset items @@ -26,7 +25,7 @@ items[c++]="resume" items[c++]=$(eval_gettext " Resume normal boot") - for i in options/*; do + for i in /lib/recovery-mode/options/*; do if [ -x "$i" ]; then name="`"$i" test`" if [ $? -eq 0 ]; then @@ -52,8 +51,16 @@ exit fi - options/$choice test mode >/dev/null 2>&1 - case "$?" in + /lib/recovery-mode/options/$choice test mode >/dev/null 2>&1 + retval=$? + + # Hack for the fsck case (needs to be cosidered read/write only when + # in read-only mode and read-only only when in read/write mode) + if [ "$choice" = "fsck" ] && [ "$READONLY" = "false" ]; then + retval=1 + fi + + case "$retval" in 0) # 0 => requires read/write if [ "$READONLY" = "true" ]; then @@ -72,13 +79,18 @@ mountall $force_fsck $fsck_fix --no-events rm -f /forcefsck 2>dev/null || true + if [ "$choice" = "fsck" ]; then + echo "" + echo $(eval_gettext "Finished, please press ENTER") + read TMP + fi + READONLY=false fi ;; 1) # 1 => read-only only - echo "Read-only only option" if [ "$READONLY" = "false" ]; then box_text=$(eval_gettext "The option you selected requires your filesystem to be in read-only mode. Unfortunately another option you selected earlier, made you exit this mode. The easiest way of getting back in read-only mode is to reboot your system.") @@ -93,6 +105,5 @@ ;; esac - continue - "options/$choice" + /lib/recovery-mode/options/$choice done