From 56916eea6cdcd5c826f7d7f70798e9937cddbdde Mon Sep 17 00:00:00 2001 From: david Date: Wed, 16 Aug 2017 14:13:13 +0200 Subject: [PATCH] mxgrub: add submenu to grubmenu --- mxgrub/mxgrub | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/mxgrub/mxgrub b/mxgrub/mxgrub index 5c80f86..df0aeea 100755 --- a/mxgrub/mxgrub +++ b/mxgrub/mxgrub @@ -86,11 +86,13 @@ sub is_VX50 { return $data=~/VX50/; } +our $submenu="all-other-kernel"; + sub get_chosen { my $chosen; open my $p,'-|','grub-editenv','-','list' or die "$!\n"; while (<$p>) { - /^chosen=(.+)/ and return $1; + /^chosen=(?:$submenu>)?(.+)/ and return $1; } close $p or die "$!\n"; $? and exit 1; @@ -185,11 +187,15 @@ if [ -e /etc/local/USB.usb ]; then menuentry "mariuxUSB" --unrestricted { save_env chosen ; linux /boot/bzImage.x86_64 crashkernel=256M root=LABEL=rootusb ro ; initrd /boot/grub/initramfs.igz } else +menuentry "$MARIUX_DEFAULT" --unrestricted { set chosen="$submenu>$MARIUX_DEFAULT" ; save_env chosen ; linux /boot/bzImage.x86_64 crashkernel=256M root=LABEL=root ro console=ttyS1,115200n8 console=tty0 ; initrd /boot/grub/initramfs.igz } + +submenu "$submenu" --unrestricted { $kernellist - if [ \$chosen ]; then - set default=\$chosen - unset chosen # must be clear to get a clean value from menuentry - fi +} + if [ \$chosen ]; then + set default=\$chosen + unset chosen # must be clear to get a clean value from menuentry + fi fi EOF @@ -241,7 +247,7 @@ sub cmd_install { if ($label eq 'default') { sys('grub-editenv','-','set',"chosen=$MARIUX_DEFAULT"); } else { - sys('grub-editenv','-','set',"chosen=$label"); + sys('grub-editenv','-','set',"chosen=$submenu>$label"); } }