aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/configmanager.lua14
1 files changed, 14 insertions, 0 deletions
diff --git a/core/configmanager.lua b/core/configmanager.lua
index 37a01a84..922ff05f 100644
--- a/core/configmanager.lua
+++ b/core/configmanager.lua
@@ -198,6 +198,7 @@ do
FileContents = true,
FileLine = true,
FileLines = true,
+ Secret = true,
Include = true, include = true, RunScript = true }, {
__index = function (_, k)
if k:match("^ENV_") then
@@ -359,6 +360,19 @@ do
env.FileLine = filereader(config_path, "*l");
env.FileLines = linereader(config_path);
+ if _G.prosody.paths.secrets then
+ env.Secret = filereader(_G.prosody.paths.secrets, "*a");
+ elseif _G.prosody.process_type == "prosody" then
+ env.Secret = function() error("Secret() requires the $CREDENTIALS_DIRECTORY environment variable to be set", 2) end
+ else
+ env.Secret = function()
+ t_insert(warnings, ("%s:%d: Secret() requires the $CREDENTIALS_DIRECTORY environment variable to be set")
+ :format(config_file, get_line_number(config_file)));
+ return nil;
+ end
+
+ end
+
local chunk, err = envload(data, "@"..config_file, env);
if not chunk then