# HG changeset patch # User Kim Alvefur # Date 1572823789 -3600 # Node ID 82705ec87253d9e3c1b4c9ea1b0130e0e43d2a85 # Parent dbb8dae5826540d551035efbe4609319b268a5f8 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. diff -r dbb8dae58265 -r 82705ec87253 util/startup.lua --- a/util/startup.lua Sun Nov 03 22:19:09 2019 +0100 +++ b/util/startup.lua Mon Nov 04 00:29:49 2019 +0100 @@ -231,8 +231,14 @@ 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