aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2023-03-17 14:36:02 +0100
committerKim Alvefur <zash@zash.se>2023-03-17 14:36:02 +0100
commitd06cc5176ba05a20ea772814ef466616405bf1bd (patch)
tree30f2e5bea2ef36414e81b1b18ae054f832b1a62d
parentd33f55156bc3db2f545e9262b32de86ff05b77ae (diff)
downloadprosody-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.lua28
1 files changed, 20 insertions, 8 deletions
diff --git a/loader.lua b/loader.lua
index e6931cce..ddd25a82 100644
--- a/loader.lua
+++ b/loader.lua
@@ -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