diff options
author | Kim Alvefur <zash@zash.se> | 2023-03-17 14:36:02 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2023-03-17 14:36:02 +0100 |
commit | d06cc5176ba05a20ea772814ef466616405bf1bd (patch) | |
tree | 30f2e5bea2ef36414e81b1b18ae054f832b1a62d | |
parent | d33f55156bc3db2f545e9262b32de86ff05b77ae (diff) | |
download | prosody-d06cc5176ba05a20ea772814ef466616405bf1bd.tar.gz prosody-d06cc5176ba05a20ea772814ef466616405bf1bd.zip |
prosody.loader: Incorporate search path rewrite patch from Debian packages
Nice to drop that patch.
Will allow loading this to do something both when installed under a
prosody directory or from a source checkout.
-rw-r--r-- | loader.lua | 28 |
1 files changed, 20 insertions, 8 deletions
@@ -1,9 +1,21 @@ -for i = #package.searchers, 1, -1 do - local search = package.searchers[i]; - table.insert(package.searchers, i, function(module_name) - local lib = module_name:match("^prosody%.(.*)$"); - if lib then - return search(lib); - end - end) +-- Allow for both require"util.foo" and require"prosody.util.foo" for a +-- transition period while we update all require calls. + +if (...) == "prosody.loader" then + if not package.path:find "prosody" then + -- 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"); + end +else + -- When requiring "prosody.x", also look for "x" + for i = #package.searchers, 1, -1 do + local search = package.searchers[i]; + table.insert(package.searchers, i, function(module_name) + local lib = module_name:match("^prosody%.(.*)$"); + if lib then + return search(lib); + end + end) + end end |