Mercurial > prosody-hg
comparison loader.lua @ 12948:29983f09c913
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.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 17 Mar 2023 14:36:02 +0100 |
| parents | 14a44b1a51d0 |
| children | 2f61ebcf37c0 |
comparison
equal
deleted
inserted
replaced
| 12947:14a44b1a51d0 | 12948:29983f09c913 |
|---|---|
| 1 for i = #package.searchers, 1, -1 do | 1 -- Allow for both require"util.foo" and require"prosody.util.foo" for a |
| 2 local search = package.searchers[i]; | 2 -- transition period while we update all require calls. |
| 3 table.insert(package.searchers, i, function(module_name) | 3 |
| 4 local lib = module_name:match("^prosody%.(.*)$"); | 4 if (...) == "prosody.loader" then |
| 5 if lib then | 5 if not package.path:find "prosody" then |
| 6 return search(lib); | 6 -- For require"util.foo" also look in paths equivalent to "prosody.util.foo" |
| 7 end | 7 package.path = package.path:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2"); |
| 8 end) | 8 package.cpath = package.cpath:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2"); |
| 9 end | |
| 10 else | |
| 11 -- When requiring "prosody.x", also look for "x" | |
| 12 for i = #package.searchers, 1, -1 do | |
| 13 local search = package.searchers[i]; | |
| 14 table.insert(package.searchers, i, function(module_name) | |
| 15 local lib = module_name:match("^prosody%.(.*)$"); | |
| 16 if lib then | |
| 17 return search(lib); | |
| 18 end | |
| 19 end) | |
| 20 end | |
| 9 end | 21 end |
