diff options
author | Waqas Hussain <waqas20@gmail.com> | 2009-06-14 21:01:30 +0500 |
---|---|---|
committer | Waqas Hussain <waqas20@gmail.com> | 2009-06-14 21:01:30 +0500 |
commit | 84d3a71ab244b5b0cf982c2e041d85a06fd1bfa4 (patch) | |
tree | d9072ddeee02f399334cf5252297e6320126cdb5 | |
parent | 41134c93cef8b157053c11ffef215a3bf8351f1d (diff) | |
download | prosody-84d3a71ab244b5b0cf982c2e041d85a06fd1bfa4.tar.gz prosody-84d3a71ab244b5b0cf982c2e041d85a06fd1bfa4.zip |
util.pluginloader: Initial commit - a plugin resource loader
-rw-r--r-- | util/pluginloader.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/util/pluginloader.lua b/util/pluginloader.lua new file mode 100644 index 00000000..1bf22f62 --- /dev/null +++ b/util/pluginloader.lua @@ -0,0 +1,33 @@ + +local plugin_dir = CFG_PLUGINDIR or "./plugins/"; + +local io_open = io.open; +local loadstring = loadstring; + +module "pluginloader" + +local function load_file(name) + local file, err = io_open(plugin_dir..name); + if not file then return file, err; end + local content = file:read("*a"); + file:close(); + return content, name; +end + +function load_resource(plugin, resource) + if not resource then + resource = "mod_"..plugin..".lua"; + end + local content, err = load_file(plugin.."/"..resource); + if not content then content, err = load_file(resource); end + -- TODO add support for packed plugins + return content, err; +end + +function load_code(plugin, resource) + local content, err = load_resource(plugin, resource); + if not content then return content, err; end + return loadstring(content, err), err; +end + +return _M; |