diff options
author | Kim Alvefur <zash@zash.se> | 2023-03-17 13:51:43 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2023-03-17 13:51:43 +0100 |
commit | d33f55156bc3db2f545e9262b32de86ff05b77ae (patch) | |
tree | 9e03bc843b60aa1fdd588d070c7783a7c84856d2 | |
parent | 9dd7ce434d2297ab807639722b3416600e1180cf (diff) | |
download | prosody-d33f55156bc3db2f545e9262b32de86ff05b77ae.tar.gz prosody-d33f55156bc3db2f545e9262b32de86ff05b77ae.zip |
prosody.loader: Allow loading modules under 'prosody' namespace (#1223)
Actually `hg mv`-ing all the files is disruptive, basically breaking
everything from rebasing all my WIP draft commits to the package
building. So instead, what if we didn't and instead rewrote package
names as they are `require()`-d?
Debian packages produced by the Prosody are already installed into this
structure so much will Just Work if all require calls are updated.
-rw-r--r-- | GNUmakefile | 6 | ||||
-rw-r--r-- | loader.lua | 9 | ||||
-rw-r--r-- | makefile | 6 |
3 files changed, 19 insertions, 2 deletions
diff --git a/GNUmakefile b/GNUmakefile index c8d2d3dd..732ae645 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -42,6 +42,10 @@ install-bin: prosody.install prosodyctl.install $(INSTALL_EXEC) ./prosody.install $(BIN)/prosody $(INSTALL_EXEC) ./prosodyctl.install $(BIN)/prosodyctl +install-loader: + $(MKDIR) $(SOURCE) + $(INSTALL_DATA) loader.lua $(SOURCE) + install-core: $(MKDIR) $(SOURCE) $(MKDIR) $(SOURCE)/core @@ -89,7 +93,7 @@ install-meta: install-data: $(MKDIR_PRIVATE) $(DATA) -install: install-util install-net install-core install-plugins install-bin install-etc install-man install-meta install-data +install: install-util install-net install-core install-plugins install-bin install-etc install-man install-meta install-data install-loader clean: rm -f prosody.install diff --git a/loader.lua b/loader.lua new file mode 100644 index 00000000..e6931cce --- /dev/null +++ b/loader.lua @@ -0,0 +1,9 @@ +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 @@ -44,6 +44,10 @@ install-bin: prosody.install prosodyctl.install $(INSTALL_EXEC) ./prosody.install $(BIN)/prosody $(INSTALL_EXEC) ./prosodyctl.install $(BIN)/prosodyctl +install-loader: + $(MKDIR) $(SOURCE) + $(INSTALL_DATA) loader.lua $(SOURCE) + install-core: $(MKDIR) $(SOURCE) $(MKDIR) $(SOURCE)/core @@ -91,7 +95,7 @@ install-meta: install-data: $(MKDIR_PRIVATE) $(DATA) -install: install-util install-net install-core install-plugins install-bin install-etc install-man install-meta install-data +install: install-util install-net install-core install-plugins install-bin install-etc install-man install-meta install-data install-loader clean: rm -f prosody.install |