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