Skip to content

add submenu for grub #13

Merged
merged 1 commit into from
Sep 27, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions mxgrub/mxgrub
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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");
}
}

Expand Down