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