Mercurial > prosody-hg
changeset 14064:76ece4dd9782
loader: Move all path setup here from all executables
So it is done in the same way for all the executables, with less code
duplication.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 09 Feb 2026 01:57:40 +0100 |
| parents | e73fdb09f080 |
| children | 50b8d732c905 |
| files | loader.lua prosody prosodyctl tools/migration/prosody-migrator.lua |
| diffstat | 4 files changed, 14 insertions(+), 45 deletions(-) [+] |
line wrap: on
line diff
--- a/loader.lua Mon Feb 09 01:57:07 2026 +0100 +++ b/loader.lua Mon Feb 09 01:57:40 2026 +0100 @@ -2,9 +2,21 @@ -- transition period while we update all require calls. if (...) == "prosody.loader" then + local function is_relative(path) + local path_sep = package.config:sub(1,1); + return ((path_sep == "/" and path:sub(1,1) ~= "/") + or (path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\"))) + end + local function filter_relative_paths(path) + if is_relative(path) then return ""; end + end + local function sanitise_paths(paths) + return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";")); + end + -- For require"util.foo" also look in paths equivalent to "prosody.util.foo" - package.path = package.path:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2"); - package.cpath = package.cpath:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2"); + package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2")); + package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2")); else -- When requiring "prosody.x", also look for "x" for i = #package.searchers, 1, -1 do
--- a/prosody Mon Feb 09 01:57:07 2026 +0100 +++ b/prosody Mon Feb 09 01:57:40 2026 +0100 @@ -28,20 +28,6 @@ -- Tell Lua where to find our libraries if CFG_SOURCEDIR then -- Installed instance - local function is_relative(path) - local path_sep = package.config:sub(1,1); - return ((path_sep == "/" and path:sub(1,1) ~= "/") - or (path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\"))) - end - local function filter_relative_paths(path) - if is_relative(path) then return ""; end - end - local function sanitise_paths(paths) - return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";")); - end - package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path); - package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath); - require "prosody.loader"; else -- Not installed, e.g. running from a source checkout
--- a/prosodyctl Mon Feb 09 01:57:07 2026 +0100 +++ b/prosodyctl Mon Feb 09 01:57:40 2026 +0100 @@ -24,24 +24,9 @@ return os.exit(1); end - -- Tell Lua where to find our libraries if CFG_SOURCEDIR then -- Installed instance - local function is_relative(path) - local path_sep = package.config:sub(1,1); - return ((path_sep == "/" and path:sub(1,1) ~= "/") - or (path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\"))) - end - local function filter_relative_paths(path) - if is_relative(path) then return ""; end - end - local function sanitise_paths(paths) - return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";")); - end - package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path); - package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath); - require "prosody.loader"; else -- Not installed, e.g. running from a source checkout
--- a/tools/migration/prosody-migrator.lua Mon Feb 09 01:57:07 2026 +0100 +++ b/tools/migration/prosody-migrator.lua Mon Feb 09 01:57:40 2026 +0100 @@ -17,20 +17,6 @@ -- Tell Lua where to find our libraries if CFG_SOURCEDIR then -- Installed instance - local function is_relative(path) - local path_sep = package.config:sub(1,1); - return ((path_sep == "/" and path:sub(1,1) ~= "/") - or (path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\"))) - end - local function filter_relative_paths(path) - if is_relative(path) then return ""; end - end - local function sanitise_paths(paths) - return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";")); - end - package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path); - package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath); - require "prosody.loader"; else -- Not installed, e.g. running from a source checkout
