stand/lua: Track env changes that come in via loader.conf(5)

This will be used when boot environment support lands to make a good-faith
effort to apply any new loader.conf(5) environment settings atop the default
configuration that we started with.
This commit is contained in:
Kyle Evans 2018-02-19 16:59:28 +00:00
parent fd2b19b3ee
commit df8a9d464a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=329589

View File

@ -27,9 +27,23 @@
--
local config = {};
-- Which variables we changed
config.env_changed = {};
-- Values to restore env to (nil to unset)
config.env_restore = {};
local modules = {};
function config.setenv(k, v)
-- Do we need to track this change?
if (config.env_changed[k] == nil) then
config.env_changed[k] = true;
config.env_restore[k] = loader.getenv(k);
end
return loader.setenv(k, v);
end
function config.setKey(k, n, v)
if (modules[k] == nil) then
modules[k] = {};
@ -115,7 +129,7 @@ local pattern_table = {
[10] = {
str = "^%s*([%w%p]+)%s*=%s*\"([%w%s%p]-)\"%s*(.*)",
process = function(k, v)
if (loader.setenv(k, v) ~= 0) then
if (config.setenv(k, v) ~= 0) then
print("Failed to set '" .. k ..
"' with value: " .. v .. "");
end
@ -125,7 +139,7 @@ local pattern_table = {
[11] = {
str = "^%s*([%w%p]+)%s*=%s*(%d+)%s*(.*)",
process = function(k, v)
if (loader.setenv(k, v) ~= 0) then
if (config.setenv(k, v) ~= 0) then
print("Failed to set '" .. k ..
"' with value: " .. v .. "");
end