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