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:
parent
fd2b19b3ee
commit
df8a9d464a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=329589
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user