xref: /freebsd/stand/lua/loader.conf.lua.5 (revision d0b2dbfa)
1.\"
2.\" SPDX-License-Identifier: BSD-2-Clause
3.\"
4.\" Copyright (c) 2020 Kyle Evans <kevans@FreeBSD.org>
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
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.
14.\"
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
25.\" SUCH DAMAGE.
26.\"
27.\" $FreeBSD$
28.\"
29.Dd May 10, 2023
30.Dt LOADER.CONF.LUA 5
31.Os
32.Sh NAME
33.Nm loader.conf.lua
34.Nd Lua-based system bootstrap configuration file
35.Sh DESCRIPTION
36When the lua-based
37.Xr loader 8
38encounters a filename in
39.Va loader_conf_files
40that has a
41.Dq .lua
42suffix, it will be loaded and executed by the lua interpreter in a limited
43environment.
44.Pp
45The limited environment does not contain the ability to reference or load other
46lua modules.
47Existing loader environment variables may be referenced as if they were already
48defined global variables.
49.Pp
50A lua configuration file may set any global variable, which will subsequently
51be processed and added to the environment after execution of the configuration
52file has completed.
53Other than the
54.Ar exec
55setting, all variables described in
56.Xr loader.conf 5
57operate the same in the
58.Nm
59environment.
60Note that the settings describing module options can only be set in the
61environment; there is currently no way for a
62.Pa loader.conf.lua
63to fetch them.
64At this time, global table and function values are ignored.
65.Pp
66The
67.Fn config.buildenv
68hook will be run with an empty environment provided to it that may be populated
69by a custom
70.Pa local.lua .
71.Sh SEE ALSO
72.Xr loader.conf 5
73.Sh AUTHORS
74The mechanism for loading
75.Nm
76files was originally written by
77.An Kyle Evans Aq Mt kevans@FreeBSD.org .
78