configmanager: Allow referencing environment variables in the config as as ENV_<name>
authorMatthew Wild <mwild1@gmail.com>
Mon, 03 Sep 2018 17:45:30 +0100
changeset 9244 2d82a926826f
parent 9243 f9a83aca4421
child 9245 68694c1bd960
configmanager: Allow referencing environment variables in the config as as ENV_<name>
core/configmanager.lua
--- a/core/configmanager.lua	Mon Sep 03 12:26:25 2018 +0100
+++ b/core/configmanager.lua	Mon Sep 03 17:45:30 2018 +0100
@@ -7,8 +7,8 @@
 --
 
 local _G = _G;
-local setmetatable, rawget, rawset, io, error, dofile, type, pairs =
-      setmetatable, rawget, rawset, io, error, dofile, type, pairs;
+local setmetatable, rawget, rawset, io, os, error, dofile, type, pairs =
+      setmetatable, rawget, rawset, io, os, error, dofile, type, pairs;
 local format, math_max = string.format, math.max;
 
 local envload = require"util.envload".envload;
@@ -109,6 +109,9 @@
 			Component = true, component = true,
 			Include = true, include = true, RunScript = true }, {
 				__index = function (_, k)
+					if k:match("^ENV_") then
+						return os.getenv(k:sub(5));
+					end
 					return rawget(_G, k);
 				end,
 				__newindex = function (_, k, v)