From ae68f4234b0abf104df5bd20ae8cc0dbe81d93b4 Mon Sep 17 00:00:00 2001 From: robertmh Date: Sun, 29 Mar 2009 02:23:12 +0000 Subject: [PATCH] 2009-03-29 Robert Millan * util/grub.d/10_linux.in (linux_entry): New function. Factorize generation of Linux boot entries. --- ChangeLog | 5 ++++ util/grub.d/10_linux.in | 54 ++++++++++++++++++----------------------- 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1c4cefc5c..f1f03f3ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-03-29 Robert Millan + + * util/grub.d/10_linux.in (linux_entry): New function. + Factorize generation of Linux boot entries. + 2009-03-29 Yoshinori K. Okuji Make the format of Environment Block plain text. The boot loader diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in index 010660f68..c2da41380 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -93,6 +93,25 @@ find_latest () echo "$a" } +linux_entry () +{ + cat << EOF +menuentry "$1" { +EOF + prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/" + cat << EOF + linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro $2 +EOF + if test -n "${initrd}" ; then + cat << EOF + initrd ${rel_dirname}/${initrd} +EOF + fi + cat << EOF +} +EOF +} + list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* ; do if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi done` @@ -122,37 +141,10 @@ while [ "x$list" != "x" ] ; do linux_root_device_thisversion=${GRUB_DEVICE} fi - cat << EOF -menuentry "${OS}, linux ${version}" { -EOF - prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/" - cat << EOF - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} -EOF - if test -n "${initrd}" ; then - cat << EOF - initrd ${rel_dirname}/${initrd} -EOF - fi - cat << EOF -} -EOF - - cat << EOF -menuentry "${OS}, linux ${version} (recovery mode)" { -EOF - prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/" - cat << EOF - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro single ${GRUB_CMDLINE_LINUX} -EOF - if test -n "${initrd}" ; then - cat << EOF - initrd ${rel_dirname}/${initrd} -EOF - fi - cat << EOF -} -EOF + linux_entry "${OS}, linux ${version}" \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" + linux_entry "${OS}, linux ${version} (recovery mode)" \ + "single ${GRUB_CMDLINE_LINUX}" list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` done