HomeFreeBSD

lualoader: add support for .lua configuration files

Description

lualoader: add support for .lua configuration files

If a file is specified in loader_conf_files that ends in '.lua', lualoader
will now load and execute that file. These may be used in place of a
traditional loader.conf to use more complicated logic, where some values
may be set based on others or based on the environment that the C bits has
left us with.

Lua scripts are run in a limited environment. In particular, it does not get
access to any modules or, in-fact, anything except environment variable.

A config.buildenv hook has been added so that a local module can add
whatever it may need to to the environment.

When a global var is set in the lua script, it does not immediately alter
the loader environment. Instead, the script's environment is initially
empty and processed only if the whole script executes successfully.
Effectively, a lua configuration file either takes effect or it does not,
an error will not leave it in a half-baked state.

Reviewed by: bcr (manpages), imp
Differential Revision: https://reviews.freebsd.org/D28450

Details

Provenance
kevansAuthored on May 11 2023, 4:10 AM
Reviewer
bcr
Differential Revision
D28450: lualoader: add support for .lua configuration files
Parents
rGb6d3a9644d5c: net/pfkeyv2.h: fix typo, meNber
Branches
Unknown
Tags
Unknown