From ee9f1bd4dc64786026c34267919441266c49c039 Mon Sep 17 00:00:00 2001
From: Francis Rowe <info@gluglug.org.uk>
Date: Sun, 16 Aug 2015 14:52:50 -0400
Subject: grub.cfg: simplify (remove repetition)

---
(limited to 'resources/grub')

diff --git a/resources/grub/config/menuentries/common.cfg b/resources/grub/config/menuentries/common.cfg
index e563371..683fbc8 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 v0.9.1