Mercurial > prosody-hg
comparison core/configmanager.lua @ 9241:2d82a926826f
configmanager: Allow referencing environment variables in the config as as ENV_<name>
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 03 Sep 2018 17:45:30 +0100 |
| parents | a55574754e5f |
| children | c9f5ccdcdf80 |
comparison
equal
deleted
inserted
replaced
| 9240:f9a83aca4421 | 9241:2d82a926826f |
|---|---|
| 5 -- This project is MIT/X11 licensed. Please see the | 5 -- This project is MIT/X11 licensed. Please see the |
| 6 -- COPYING file in the source package for more information. | 6 -- COPYING file in the source package for more information. |
| 7 -- | 7 -- |
| 8 | 8 |
| 9 local _G = _G; | 9 local _G = _G; |
| 10 local setmetatable, rawget, rawset, io, error, dofile, type, pairs = | 10 local setmetatable, rawget, rawset, io, os, error, dofile, type, pairs = |
| 11 setmetatable, rawget, rawset, io, error, dofile, type, pairs; | 11 setmetatable, rawget, rawset, io, os, error, dofile, type, pairs; |
| 12 local format, math_max = string.format, math.max; | 12 local format, math_max = string.format, math.max; |
| 13 | 13 |
| 14 local envload = require"util.envload".envload; | 14 local envload = require"util.envload".envload; |
| 15 local deps = require"util.dependencies"; | 15 local deps = require"util.dependencies"; |
| 16 local resolve_relative_path = require"util.paths".resolve_relative_path; | 16 local resolve_relative_path = require"util.paths".resolve_relative_path; |
| 107 env = setmetatable({ | 107 env = setmetatable({ |
| 108 Host = true, host = true, VirtualHost = true, | 108 Host = true, host = true, VirtualHost = true, |
| 109 Component = true, component = true, | 109 Component = true, component = true, |
| 110 Include = true, include = true, RunScript = true }, { | 110 Include = true, include = true, RunScript = true }, { |
| 111 __index = function (_, k) | 111 __index = function (_, k) |
| 112 if k:match("^ENV_") then | |
| 113 return os.getenv(k:sub(5)); | |
| 114 end | |
| 112 return rawget(_G, k); | 115 return rawget(_G, k); |
| 113 end, | 116 end, |
| 114 __newindex = function (_, k, v) | 117 __newindex = function (_, k, v) |
| 115 set(config_table, env.__currenthost or "*", k, v); | 118 set(config_table, env.__currenthost or "*", k, v); |
| 116 end | 119 end |
