From 6cf6a6fa203d2bbb9bb51fbe58ab7d4914dd2c45 Mon Sep 17 00:00:00 2001
From: Joerg Schirottke <master@kanotix.com>
Date: Sun, 19 Mar 2017 10:59:58 +0100
Subject: grub: add search iso in grub.cfg

---
 config/binary_grub/grub.cfg | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/config/binary_grub/grub.cfg b/config/binary_grub/grub.cfg
index ead8e6c..d3b55ba 100644
--- a/config/binary_grub/grub.cfg
+++ b/config/binary_grub/grub.cfg
@@ -4,6 +4,8 @@ set timeout=8
 
 set boot_en='boot=live config utc=yes locales=en_US.UTF-8'
 set boot_de='boot=live config utc=no timezone=Europe/Berlin locales=de_DE.UTF-8,en_US.UTF-8 keyboard-layouts=de keyboard-variants=nodeadkeys'
+set search_file='kanotix*.iso'
+set isofile=''
 
 if loadfont /boot/grub/unicode.pf2 ; then
   set gfxmode=800x600
@@ -96,6 +98,40 @@ menuentry 'Start Kanotix EN (failsafe)' {
         initrd  /live/initrd.img
 }
 
+insmod regexp
+
+menuentry "Suche Kanotix DE ISO" {
+for isofile in (*)/*/ISO/$search_file (*)/ISO/$search_file (*)/*/Downloads/$search_file (*)/Downloads/$search_file (*)/$search_file; do
+    if [ -e "$isofile" ]; then
+	regexp --set=device '(\(.*\))' "$isofile"
+	regexp --set=image '\(.*\)/(.*)' "$isofile"
+	menuentry "Boot $isofile" "$device" "$image" {
+	    set root="$2"
+	    set image="$3"
+	    loopback iso /$image
+	    linux (iso)/live/vmlinuz findiso=$image $boot_de quiet gfx=auto
+	    initrd (iso)/live/initrd.img
+	}
+    fi
+done
+}
+
+menuentry "Search Kanotix EN ISO" {
+for isofile in (*)/*/ISO/$search_file (*)/ISO/$search_file (*)/*/Downloads/$search_file (*)/Downloads/$search_file (*)/$search_file; do
+    if [ -e "$isofile" ]; then
+	regexp --set=device '(\(.*\))' "$isofile"
+	regexp --set=image '\(.*\)/(.*)' "$isofile"
+	menuentry "Boot $isofile" "$device" "$image" {
+	    set root="$2"
+	    set image="$3"
+	    loopback iso /$image
+	    linux (iso)/live/vmlinuz findiso=$image $boot_en quiet gfx=auto
+	    initrd (iso)/live/initrd.img
+	}
+    fi
+done
+}
+
 #####
 
 if [ $efi != 1 ] ; then
@@ -142,4 +178,3 @@ else
   fi
  done
 fi
-
-- 
cgit v1.0