iPXE discussion forum
Submenus through chain loading. Any drawbacks? - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: Submenus through chain loading. Any drawbacks? (/showthread.php?tid=7132)



Submenus through chain loading. Any drawbacks? - lawnmover - 2013-11-27 15:52

Hi all,

while playing with iPXE lately and having a working setup working distros came flying in so my main menu got a bit crowed and I decided to go with submenus. Following the example on https://gist.github.com/robinsmidsrod/2234639#file-menu-ipxe-L16 I found the file a bit to big and tried to split the submenus into seperate files calling them with chain filename. This worked reall easy. Just now I wonder if there might be any drawbacks in the method I'm using?

This calls menu-inst.ipxe just fine and presents the submenu.
Code:
# calling the submenu from main menu
:menu-misc
chain --replace --autofree ${boot-url}/menu-inst.ipxe

The back item just calls the main menu with chain and were back at the main menu.
Code:
#!ipxe

# set menu timeout
set submenu-timeout 0

# set default menu. run after menu timeout
isset ${submenu-default} || set submenu-default back

##################
# Show Main Menu #
##################

:menu-inst
menu Install Media
#item --gap --          --- Entries ---
item --key d debian     Debian Wheezy (Gnome)
item debianK            Debian Wheezy (KDE)
item debianL            Debian Wheezy (LXDE)
item debianX            Debian Wheezy (XFCE)
item --gap --
item --key b back       Back to Main Menu

choose --timeout ${submenu-timeout} --default ${submenu-default} selected || goto cancel
set submenu-timeout 0
goto ${selected}

:debian
kernel isos/debian/netboot${arch}/linux priority=low vga=788 ${desktop}
initrd isos/debian/netboot${arch}/initrd.gz
boot || goto failed

:debianK
set desktop kde
goto debian

:debianL
set desktop lxde
goto debian

:debianX
set desktop xcfe
goto debian

:back
chain --replace --autofree ${menu-url}

:failed
echo Booting failed.
prompt Press key to continue
goto menu-inst

:cancel
echo Menu canceled. Restarting machine.
reboot
exit

I right now have on main menu file and three sub menu files. All neat and clean and easy to read. Also some code is duplicated like failed back and cancel but thats no deal for me.

Any comments or thoughts you have calling submenus like that?

Regards
Lawnmover


RE: Submenus through chain loading. Any drawbacks? - robinsmidsrod - 2013-11-27 21:50

That is as good a method as any. The reason I've got it all in one file in the example is that it is easier to copy and paste when I need to update the example. Using multiple files is more modular, and absolutely a Good Thing™. I actually had my menus setup in multiple files, and then slowly combined them into a single one as I learned more about how to do things. What works for you is all dependent on your use-case.


RE: Submenus through chain loading. Any drawbacks? - lawnmover - 2013-11-28 09:16

That sounds good. So I will procede with my way.

Thanks for such a nice and easy software.


RE: Submenus through chain loading. Any drawbacks? - saltjolie - 2013-12-02 08:23

Also some code is duplicated like failed back and cancel but thats no deal for me.