[syslinux] Add support for Variables

Ryan McLean ryanm at accelrys.com
Tue Apr 10 09:55:10 PDT 2007


Was just looking at a number of my scripts ( due to having to update them 
for RH5).

Would it be possible to add support for variables / 2 variables 

HTTP_SERVER (scope should be global in "default" but local elsewhere, 
could maybe pe passed as an argument to vesamenu.c32 and menu.c32 (i think 
its only of use for people using these files.))
KICKSTART_DIR  (this name should be more generic, and should only have 
local scope)

if in "default" then should be available to all included files / other 
conf files called, either passed as a param (in eg below ) or passed in 
memory.

eg

default:
-------------
# Default boot option to use
DEFAULT vesamenu.c32

# Prompt user for selection
PROMPT 0

# Menu Configuration
MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
MENU TITLE RHS 5 Main Menu

# Http server used in CONF files (because here should have global scope 
unless overriden by a local version)
HTTP_SERVER=http://mykickstart.example.com

# Vesa Options
#
MENU INCLUDE gfx/default

# Menus
LABEL x86-5
    MENU DEFAULT
    MENU LABEL ^32Bit (x86) - 5.x
    KERNEL vesamenu.c32
    APPEND conf/x86-5.conf
 
LABEL x64-5
    MENU LABEL ^64Bit (x64) - 5.x
    KERNEL vesamenu.c32
    APPEND conf/x64-5.conf  HTTP_SERVER
 
LABEL ia64-5
    MENU LABEL ^Itanium (ia64) - 5.x
    KERNEL vesamenu.c32
    APPEND conf/ia64-5.conf
-------------

conf/x64-5.conf
--------------
# Default boot option to use
DEFAULT vesamenu.c32

# Prompt user for selection
PROMPT 0

# Time until default is selected
TIMEOUT 100

# Menu Configuration
MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
MENU TITLE 64Bit (x64) RHS 5.x OS Choice

 # http_server is commented out here so should use global version declared 
in "default"
##HTTP_SERVER=http://xxx.yyy.com
KICKSTART_DIR=ks/x64/rhs

# Vesa Options
#
MENU INCLUDE gfx/default

# Return to Main Menu
LABEL MainMenu
    MENU DEFAULT
    MENU LABEL ^Main Menu
    KERNEL vesamenu.c32

#
# Latest Release
#
LABEL latest
    MENU LABEL ^Latest Release
    KERNEL knl/vmlinuz-rhs5-x64
    APPEND initrd=img/initrd-rhs5-x64.img 
ks=$HTTP_SERVER/$KICKSTART_DIR/5.cfg
 
#
# Blank boots
#
LABEL linux-rhs50
    MENU LABEL ^Blank 5.0
    KERNEL knl/vmlinuz-rhs5-x64
    APPEND initrd=img/initrd-rhs5-x64.img
------------------------------

This would greatly improve my ability to manage the conf files as i would 
only have to update changes in 1 or 2 places as opposed to multiple 
locations.. 
(Noone suggest using the likes of sed please as this in my case is all 
servered via a windows RIS server :P )

Other than this improvement i am still loving syslinux keep up the good 
work.

Regards,


Ryan McLean


More information about the Syslinux mailing list