2 .\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
4 .\" Copyright (c) 2018 Kyle Evans <kevans@FreeBSD.org>
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\" notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\" notice, this list of conditions and the following disclaimer in the
13 .\" documentation and/or other materials provided with the distribution.
15 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 .Nd FreeBSD config module
37 contains configuration and module loading functionality.
39 Before hooking into or using the functionality provided by
41 it must be included with a statement such as the following:
43 .Dl local config = require("config")
44 .Ss Exported functions
45 The following functions are exported from
47 .Bl -tag -width "config.setCarouselIndex(id, idx)" -offset indent
48 .It Fn config.getCarouselIndex id
49 Returns the currently chosen index in the carousel menu entry described by
53 for a more in-depth explanation of carousels.
54 .It Fn config.setCarouselIndex id idx
55 Set the chosen index for the carousel menu entry described by
59 A lookup will be done as needed to determine what value
61 actually corresponds to.
62 .It Fn config.processFile name silent
65 as a configuration file.
68 exists and parses without error, false otherwise.
72 .Fn config.processFile
73 will not consider a failure to read the file as a failure.
74 .It Fn config.parse text
77 as a configuration file.
78 This is used internally by
79 .Fn config.processFile
80 to parse the contents of a configuration file.
81 Returns true if parsing succeeds without error, false if an error occurred.
82 A message is also printed to the console if an error is encountered.
83 .It Fn config.loadKernel other_kernel
93 Otherwise, it will try to load
96 .Pa /boot/{other_kernel} ,
100 The latter is tried in case an absolute path has been specified to the kernel
103 is amended to include the directory the kernel was found in if either of these
104 paths result in a loaded kernel.
106 If no kernel was loaded from either of these paths,
107 .Fn config.loadKernel
108 will attempt to load a kernel named
112 instead of attempting to load a kernel named
115 Returns true if a kernel was loaded, false if no kernel was loaded.
116 .It Fn config.selectKernel kernel
119 to the kernel that will be loaded when either
124 This is usually called by the menu system as the kernel selector carousel is
126 .It Fn config.load file reload
129 as a configuration file.
133 .Pa /boot/defaults/loader.conf
136 will then silently attempt to process any files specified in
137 .Ev loader_conf_files
142 configuration will also be checked as part of
144 Before returning, all
149 .It Fn config.reload file
152 as a configuration file.
154 will restore the environment to how it existed before the last config was
155 loaded, then it will invoke
156 .Fn config.load file .
157 Before returning, all
160 .It Fn config.loadelf
161 Loads all ELF objects, the selected kernel as well as any modules configured to
164 This will be called by the Lua intercepted
171 The following hooks are defined in
173 .Bl -tag -width "config.reloaded" -offset indent
185 file was originally written by
186 .An Pedro Souza Aq Mt pedrosouza@FreeBSD.org .
187 Later work and this manual page was done by
188 .An Kyle Evans Aq Mt kevans@FreeBSD.org .