From ee9f1bd4dc64786026c34267919441266c49c039 Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Sun, 16 Aug 2015 19:52:50 +0100 Subject: grub.cfg: simplify (remove repetition) --- resources/grub/config/menuentries/common.cfg | 116 ++++++++------------------- 1 file changed, 35 insertions(+), 81 deletions(-) (limited to 'resources') diff --git a/resources/grub/config/menuentries/common.cfg b/resources/grub/config/menuentries/common.cfg index e5633719..683fbc83 100644 --- 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 } -- cgit v1.2.3-70-g09d2