+-- Prosody IM
+-- Copyright (C) 2008-2010 Matthew Wild
+-- Copyright (C) 2008-2010 Waqas Hussain
+--
+-- This project is MIT/X11 licensed. Please see the
+-- COPYING file in the source package for more information.
+--
+
local plugin_dir = CFG_PLUGINDIR or "./plugins/";
-local io_open = io.open;
-local loadstring = loadstring;
+local io_open, os_time = io.open, os.time;
+local loadstring, pairs = loadstring, pairs;
module "pluginloader"
return content, name;
end
-function load_resource(plugin, resource)
- if not resource then
- resource = "mod_"..plugin..".lua";
+function load_resource(plugin, resource, loader)
+ local path, name = plugin:match("([^/]*)/?(.*)");
+ if name == "" then
+ if not resource then
+ resource = "mod_"..plugin..".lua";
+ end
+ loader = loader or load_file;
+
+ local content, err = loader(plugin.."/"..resource);
+ if not content then content, err = loader(resource); end
+ -- TODO add support for packed plugins
+
+ return content, err;
+ else
+ if not resource then
+ resource = "mod_"..name..".lua";
+ end
+ loader = loader or load_file;
+
+ local content, err = loader(plugin.."/"..resource);
+ if not content then content, err = loader(path.."/"..resource); end
+ -- TODO add support for packed plugins
+
+ return content, err;
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)