menu.rc revision 293802
1\ Menu.rc
2\ $FreeBSD: stable/10/sys/boot/forth/menu.rc 293802 2016-01-13 01:50:02Z allanjude $
3\
4\ You should not edit this file! Put any overrides in menu.rc.local
5\ instead as this file can be replaced during system updates.
6\
7\ Load required Forth modules
8include /boot/version.4th
9include /boot/brand.4th
10include /boot/menu.4th
11include /boot/menu-commands.4th
12include /boot/shortcuts.4th
13
14\ Screen prep
15clear         \ clear the screen (see `screen.4th')
16print_version \ print version string (bottom-right; see `version.4th')
17draw-beastie  \ draw freebsd mascot (on right; see `beastie.4th')
18draw-brand    \ draw the FreeBSD title (top-left; see `brand.4th')
19menu-init     \ initialize the menu area (see `menu.4th')
20
21\ Initialize main menu constructs (see `menu.4th')
22\ NOTE: To use `non-ansi' variants, add `loader_color=0' to loader.conf(5)
23\ NOTE: ANSI variants can use `^' in place of literal `Esc' (ASCII 27)
24
25\ 
26\ MAIN MENU
27\ 
28
29set menuset_name1="main"
30
31set mainmenu_init[1]="init_boot"
32set mainmenu_caption[1]="Boot Multi User [Enter]"
33set maintoggled_text[1]="Boot [S]ingle User [Enter]"
34set mainmenu_command[1]="boot"
35set mainansi_caption[1]="^[1mB^[moot Multi User ^[1m[Enter]^[m"
36set maintoggled_ansi[1]="Boot ^[1mS^[mingle User ^[1m[Enter]^[m"
37\ keycode set by init_boot
38
39set mainmenu_init[2]="init_altboot"
40set mainmenu_caption[2]="Boot [S]ingle User"
41set maintoggled_text[2]="Boot [M]ulti User"
42set mainmenu_command[2]="altboot"
43set mainansi_caption[2]="Boot ^[1mS^[mingle User"
44set maintoggled_ansi[2]="Boot ^[1mM^[multi User"
45\ keycode set by init_altboot
46
47set mainmenu_caption[3]="[Esc]ape to loader prompt"
48set mainmenu_command[3]="goto_prompt"
49set mainmenu_keycode[3]=27
50set mainansi_caption[3]="^[1mEsc^[mape to loader prompt"
51
52\ Enable built-in "Reboot" trailing menuitem
53\ NOTE: appears before menu_options if configured
54\ 
55set mainmenu_reboot
56
57\ Enable "Options:" separator. When set to a numerical value (1-8), a visual
58\ separator is inserted before that menuitem number.
59\ 
60set mainmenu_options=5
61
62set mainmenu_kernel=5
63set mainmenu_command[5]="cycle_kernel"
64set mainmenu_keycode[5]=107
65
66set mainmenu_caption[6]="Configure Boot [O]ptions..."
67set mainmenu_command[6]="2 goto_menu"
68set mainmenu_keycode[6]=111
69set mainansi_caption[6]="Configure Boot ^[1mO^[mptions..."
70
71s" currdev" getenv dup 0> [if] drop 4 s" zfs:" compare 0= [if]
72    set mainmenu_caption[7]="Select Boot [E]nvironment..."
73    set mainmenu_command[7]="3 goto_menu"
74    set mainmenu_keycode[7]=101
75    set mainansi_caption[7]="Select Boot ^[1mE^[37mnvironment..."
76[then] [else] drop [then]
77
78\ 
79\ BOOT OPTIONS MENU
80\ 
81
82set menuset_name2="options"
83
84set optionsmenu_caption[1]="Back to Main Menu [Backspace]"
85set optionsmenu_command[1]="1 goto_menu"
86set optionsmenu_keycode[1]=8
87set optionsansi_caption[1]="Back to Main Menu ^[1m[Backspace]^[m"
88
89set optionsmenu_caption[2]="Load System [D]efaults"
90set optionsmenu_command[2]="set_default_boot_options"
91set optionsmenu_keycode[2]=100
92set optionsansi_caption[2]="Load System ^[1mD^[mefaults"
93
94set optionsmenu_options=3
95set optionsmenu_optionstext="Boot Options:"
96
97set optionsmenu_acpi=3
98set optionsmenu_caption[3]="[A]CPI Support off"
99set optionstoggled_text[3]="[A]CPI Support On"
100set optionsmenu_command[3]="toggle_acpi"
101set optionsmenu_keycode[3]=97
102set optionsansi_caption[3]="^[1mA^[mCPI Support ^[34;1mOff^[m"
103set optionstoggled_ansi[3]="^[1mA^[mCPI Support ^[32;7mOn^[m"
104
105set optionsmenu_init[4]="init_safemode"
106set optionsmenu_caption[4]="Safe [M]ode... off"
107set optionstoggled_text[4]="Safe [M]ode... On"
108set optionsmenu_command[4]="toggle_safemode"
109set optionsmenu_keycode[4]=109
110set optionsansi_caption[4]="Safe ^[1mM^[mode... ^[34;1mOff^[m"
111set optionstoggled_ansi[4]="Safe ^[1mM^[mode... ^[32;7mOn^[m"
112
113set optionsmenu_init[5]="init_singleuser"
114set optionsmenu_caption[5]="[S]ingle User. off"
115set optionstoggled_text[5]="[S]ingle User. On"
116set optionsmenu_command[5]="toggle_singleuser"
117set optionsmenu_keycode[5]=115
118set optionsansi_caption[5]="^[1mS^[mingle User. ^[34;1mOff^[m"
119set optionstoggled_ansi[5]="^[1mS^[mingle User. ^[32;7mOn^[m"
120
121set optionsmenu_init[6]="init_verbose"
122set optionsmenu_caption[6]="[V]erbose..... off"
123set optionstoggled_text[6]="[V]erbose..... On"
124set optionsmenu_command[6]="toggle_verbose"
125set optionsmenu_keycode[6]=118
126set optionsansi_caption[6]="^[1mV^[merbose..... ^[34;1mOff^[m"
127set optionstoggled_ansi[6]="^[1mV^[merbose..... ^[32;7mOn^[m"
128
129\ 
130\ BOOT ENVIRONMENT MENU
131\ 
132
133set menuset_name3="bootenv"
134
135set bemenu_current="Active: "
136set beansi_current="^[1m${bemenu_current}^[m"
137set bemenu_bootfs="bootfs: "
138set beansi_bootfs="^[1m${bemenu_bootfs}^[m"
139set bemenu_page="[P]age: "
140set beansi_page="^[1mP^[mage: "
141set bemenu_pageof=" of "
142set beansi_pageof="${bemenu_pageof}"
143set zfs_be_currpage=1
144
145set bootenvmenu_init="init_bootenv"
146
147set bootenvmenu_command[1]="be_draw_screen 1 goto_menu"
148set bootenvmenu_keycode[1]=8
149
150set bootenvmenu_command[2]="set_bootenv"
151set bootenvmenu_keycode[2]=97
152set bootenv_root[2]="${zfs_be_active}"
153
154set bootenvmenu_command[3]="set_be_page"
155set bootenvmenu_keycode[3]=112
156
157set bootenvmenu_options=4
158set bootenvmenu_optionstext="Boot Environments:"
159
160\ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to
161\ customize the timeout; default is 10-seconds)
162\ 
163set menu_timeout_command="boot"
164
165\ Include optional elements defined in a local file
166\ 
167try-include /boot/menu.rc.local
168
169\ Initialize boot environment variables
170\
171s" reloadbe" sfind ( xt|0 bool ) [if]
172    s" bootenv_autolist" getenv dup -1 = [if]
173	drop s" execute" evaluate		\ Use evaluate to avoid passing
174						\ reloadbe an optional parameter
175    [else]
176	s" YES" compare-insensitive 0= [if]
177	    s" execute" evaluate
178	[then]
179    [then]
180[else]
181    drop ( xt=0 )
182[then]
183
184\ Display the main menu (see `menu.4th')
185set menuset_initial=1
186menuset-loadinitial
187menu-display
188