Add a try-include word (which acts the same as "include") and use it to

conditionally include (but ignore failures) /boot/loader.rc.local and
/boot/menu.rc.local -- to make customizing the menu easier.

Reviewed by:	alfred
Discussed on:	-hackers
This commit is contained in:
Devin Teske 2013-11-17 18:12:17 +00:00
parent c0264af94b
commit f697065fda
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=258270
5 changed files with 23 additions and 1 deletions

View File

@ -233,7 +233,16 @@ include /boot/check-password.4th
s" disable-module" s" disable loading of a module" .?
s" toggle-module" s" toggle loading of a module" .?
s" show-module" s" show module load data" .?
s" try-include" s" try to load/interpret files" .?
;
: try-include ( -- ) \ see loader.4th(8)
['] include ( -- xt ) \ get the execution token of `include'
catch ( xt -- exception# | 0 ) if \ failed
LF parse ( c -- s-addr/u ) 2drop \ advance >in to EOL (drop data)
\ ... prevents words unused by `include' from being interpreted
then
; immediate \ interpret immediately for access to `source' (aka tib)
only forth also

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd October 17, 2013
.Dd November 13, 2013
.Dt LOADER.4TH 8
.Os
.Sh NAME
@ -158,6 +158,13 @@ files to specify the action after a module loading fails.
Used inside
.Xr loader.conf 5
files to specify the action after a module loading fails.
.It Ic try-include Ar file Op Ar
Process script files if they exist.
Each file, in turn, is completely read into memory,
and then each of its lines is passed to the command line interpreter.
If any error is returned by the interpreter, the try-include
command aborts immediately, without reading any other files, and
silently returns without error.
.El
.Sh FILES
.Bl -tag -width /boot/loader.4th -compact

View File

@ -3,6 +3,7 @@
\
\ Includes additional commands
include /boot/loader.4th
try-include /boot/loader.rc.local
\ Reads and processes loader.conf variables
\ NOTE: Change to `initialize' if you enable the below boot menu

View File

@ -120,6 +120,10 @@ set optionstoggled_ansi[6]="Verbose..... On"
\
set menu_timeout_command="boot"
\ Include optional elements defined in a local file
\
try-include /boot/menu.rc.local
\ Display the main menu (see `menu.4th')
set menuset_initial=1
menuset-loadinitial

View File

@ -3,6 +3,7 @@
\
\ Includes additional commands
include /boot/loader.4th
try-include /boot/loader.rc.local
\ Reads and processes loader.conf variables
initialize