libreboot

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit ee9f1bd4dc64786026c34267919441266c49c039
parent 20614bf4f94f6d6e63d2a43e948e59a7720dc83e
Author: Francis Rowe <info@gluglug.org.uk>
Date:   Sun, 16 Aug 2015 19:52:50 +0100

grub.cfg: simplify (remove repetition)

Diffstat:
resources/grub/config/menuentries/common.cfg | 116++++++++++++++++++++++++-------------------------------------------------------
1 file changed, 35 insertions(+), 81 deletions(-)

diff --git a/resources/grub/config/menuentries/common.cfg b/resources/grub/config/menuentries/common.cfg @@ -3,36 +3,21 @@ menuentry 'Load Operating System' { insmod part_msdos insmod part_gpt for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4); do - if [ -f "$x/grub/libreboot_grub.cfg" ] ; then - set root=$x - configfile /grub/libreboot_grub.cfg - fi - if [ -f "$x/boot/grub/libreboot_grub.cfg" ] ; then - set root=$x - configfile /boot/grub/libreboot_grub.cfg - fi - if [ -f "$x/grub/grub.cfg" ] ; then - set root=$x - configfile /grub/grub.cfg - fi - if [ -f "$x/boot/grub/grub.cfg" ] ; then - set root=$x - configfile /boot/grub/grub.cfg - fi + for path in "/grub/libreboot_grub.cfg" "/boot/grub/libreboot_grub.cfg" "/grub/grub.cfg" "/boot/grub/grub.cfg"; do + if [ -f "${x}${path}" ] ; then + set root=${x} + configfile ${path} + fi + done done set root='ahci0,1' - if [ -f "/vmlinuz" ] ; then - linux /vmlinuz root=/dev/sda1 rw - if [ -f "/initrd.img" ] ; then - initrd /initrd.img + for path in "" "/boot"; do + if [ -f "${path}/vmlinuz" ]; then + linux ${path}/vmlinuz root=/dev/sda1 rw + initrd ${path}/initrd.img fi - elif [ -f "/boot/vmlinuz" ] ; then - linux /boot/vmlinuz root=/dev/sda1 rw - if [ -f "/boot/initrd.img" ] ; then - initrd /boot/initrd.img - fi - fi + done } menuentry 'Parse ISOLINUX menu (ahci0)' { insmod ahci @@ -40,15 +25,11 @@ menuentry 'Parse ISOLINUX menu (ahci0)' { insmod part_gpt for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4); do set root=$x - if [ -f "/isolinux/isolinux.cfg" ] ; then - syslinux_configfile -i /isolinux/isolinux.cfg - elif [ -f "/syslinux/syslinux.cfg" ] ; then - syslinux_configfile -i /syslinux/syslinux.cfg - elif [ -f "/boot/isolinux/isolinux.cfg" ] ; then - syslinux_configfile -i /boot/isolinux/isolinux.cfg - elif [ -f "/boot/syslinux/syslinux.cfg" ] ; then - syslinux_configfile -i /boot/syslinux/syslinux.cfg - fi + for path in "/isolinux/isolinux.cfg" "/syslinux/syslinux.cfg" "/boot/isolinux/isolinux.cfg" "/boot/syslinux/syslinux.cfg"; do + if [ -f "${path}" ]; then + syslinux_configfile -i ${path} + fi + done done } menuentry 'Parse ISOLINUX menu (USB)' { @@ -57,15 +38,11 @@ menuentry 'Parse ISOLINUX menu (USB)' { insmod part_gpt for x in (usb0) (usb0,1) (usb0,2) (usb0,3) (usb0,4); do set root=$x - if [ -f "/isolinux/isolinux.cfg" ] ; then - syslinux_configfile -i /isolinux/isolinux.cfg - elif [ -f "/syslinux/syslinux.cfg" ] ; then - syslinux_configfile -i /syslinux/syslinux.cfg - elif [ -f "/boot/isolinux/isolinux.cfg" ] ; then - syslinux_configfile -i /boot/isolinux/isolinux.cfg - elif [ -f "/boot/syslinux/syslinux.cfg" ] ; then - syslinux_configfile -i /boot/syslinux/syslinux.cfg - fi + for path in "/isolinux/isolinux.cfg" "/syslinux/syslinux.cfg" "/boot/isolinux/isolinux.cfg" "/boot/syslinux/syslinux.cfg"; do + if [ -f "${path}" ]; then + syslinux_configfile -i ${path} + fi + done done } menuentry 'Parse ISOLINUX menu (CD/DVD)' { @@ -74,15 +51,11 @@ menuentry 'Parse ISOLINUX menu (CD/DVD)' { insmod iso9660 for x in (ata0) (ahci1); do set root=$x - if [ -f "/isolinux/isolinux.cfg" ] ; then - syslinux_configfile -i /isolinux/isolinux.cfg - elif [ -f "/syslinux/syslinux.cfg" ] ; then - syslinux_configfile -i /syslinux/syslinux.cfg - elif [ -f "/boot/isolinux/isolinux.cfg" ] ; then - syslinux_configfile -i /boot/isolinux/isolinux.cfg - elif [ -f "/boot/syslinux/syslinux.cfg" ] ; then - syslinux_configfile -i /boot/syslinux/syslinux.cfg - fi + for path in "/isolinux/isolinux.cfg" "/syslinux/syslinux.cfg" "/boot/isolinux/isolinux.cfg" "/boot/syslinux/syslinux.cfg"; do + if [ -f "${path}" ]; then + syslinux_configfile -i ${path} + fi + done done } menuentry 'Switch to grubtest.cfg' { @@ -95,34 +68,15 @@ menuentry 'Search for GRUB configuration (grub.cfg) outside of CBFS' { insmod part_msdos insmod part_gpt for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4) (usb0) (usb0,1) (usb0,2) (usb0,3) (usb0,4); do - if [ -f "$x/grub/grub.cfg" ] ; then - submenu "Load Config from $x" $x { - root=$2 - source /grub/grub.cfg - unset superusers - } - fi - if [ -f "$x/boot/grub/grub.cfg" ] ; then - submenu "Load Config from $x" $x { - root=$2 - source /boot/grub/grub.cfg - unset superusers - } - fi - if [ -f "$x/grub2/grub.cfg" ] ; then - submenu "Load Config from $x" $x { - root=$2 - source /grub2/grub.cfg - unset superusers - } - fi - if [ -f "$x/boot/grub2/grub.cfg" ] ; then - submenu "Load Config from $x" $x { - root=$2 - source /boot/grub2/grub.cfg - unset superusers - } - fi + for path in "/grub/grub.cfg" "/boot/grub/grub.cfg" "/grub2/grub.cfg" "/boot/grub2/grub.cfg"; do + if [ -f "${x}${path}" ] ; then + submenu "Load Config from $x" $x { + root=$2 + source ${path} + unset superusers + } + fi + done done }