Author: kevans
Date: Mon Feb 19 16:59:28 2018
New Revision: 329589
URL: https://svnweb.freebsd.org/changeset/base/329589

Log:
  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.

Modified:
  head/stand/lua/config.lua

Modified: head/stand/lua/config.lua
==============================================================================
--- head/stand/lua/config.lua   Mon Feb 19 16:42:06 2018        (r329588)
+++ head/stand/lua/config.lua   Mon Feb 19 16:59:28 2018        (r329589)
@@ -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
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to