Author: eelco
Date: Sun Jul 17 11:42:44 2011
New Revision: 27807
URL: https://svn.nixos.org/websvn/nix/?rev=27807&sc=1

Log:
* Support booting into another GRUB boot entry via ‘grub-reboot’.
  This requires grub.conf to honour the saved_entry GRUB environment
  variable.

Modified:
   nixos/trunk/modules/installer/grub/grub-menu-builder.sh

Modified: nixos/trunk/modules/installer/grub/grub-menu-builder.sh
==============================================================================
--- nixos/trunk/modules/installer/grub/grub-menu-builder.sh     Sun Jul 17 
11:01:31 2011        (r27806)
+++ nixos/trunk/modules/installer/grub/grub-menu-builder.sh     Sun Jul 17 
11:42:44 2011        (r27807)
@@ -59,8 +59,27 @@
             cp -f @grub@/share/grub/unicode.pf2 /boot/grub/unicode.pf2
            cat > "$1" <<EOF
 # Automatically generated.  DO NOT EDIT THIS FILE!
-set default=@default@
-set timeout=@timeout@
+
+if [ -s \$prefix/grubenv ]; then
+  load_env
+fi
+
+# ‘grub-reboot’ sets a one-time saved entry, which we process here and
+# then delete.
+if [ "\${saved_entry}" ]; then
+  # The next line *has* to look exactly like this, otherwise KDM's
+  # reboot feature won't work properly with GRUB 2.
+  set default="\${saved_entry}"
+  set saved_entry=
+  set prev_saved_entry=
+  save_env saved_entry
+  save_env prev_saved_entry
+  set timeout=1
+else
+  set default=@default@
+  set timeout=@timeout@
+fi
+
 if loadfont $bootRoot/grub/unicode.pf2; then
   set gfxmode=640x480
   insmod gfxterm
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to