diff options
author | Kim Alvefur <zash@zash.se> | 2019-11-04 00:29:49 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2019-11-04 00:29:49 +0100 |
commit | 91156ab5d9ea64f1c8f47aa5f30c06d8fc896056 (patch) | |
tree | d620900e2f37d3c05fa357c074b33a461022568f /util | |
parent | 5e4bc6299bb49f469cc180cd6a1ba76fd46ae6ee (diff) | |
download | prosody-91156ab5d9ea64f1c8f47aa5f30c06d8fc896056.tar.gz prosody-91156ab5d9ea64f1c8f47aa5f30c06d8fc896056.zip |
util.startup: Ensure prosody.paths are absolute (see #1430)
Normally these paths are injected into the installed 'prosody'
executable as absolute paths, but it is possible to override at least
the config path via environment variable or command line argument. This
makes sure a path relative to pwd stays relative to that instead of the
data directory.
Diffstat (limited to 'util')
-rw-r--r-- | util/startup.lua | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/util/startup.lua b/util/startup.lua index 82d0804d..e88ed709 100644 --- a/util/startup.lua +++ b/util/startup.lua @@ -231,8 +231,14 @@ end function startup.chdir() if prosody.installed then + local lfs = require "lfs"; + -- Ensure paths are absolute, not relative to the working directory which we're about to change + local cwd = lfs.currentdir(); + prosody.paths.source = config.resolve_relative_path(cwd, prosody.paths.source); + prosody.paths.config = config.resolve_relative_path(cwd, prosody.paths.config); + prosody.paths.data = config.resolve_relative_path(cwd, prosody.paths.data); -- Change working directory to data path. - require "lfs".chdir(prosody.paths.data); + lfs.chdir(prosody.paths.data); end end |