From 84d3a71ab244b5b0cf982c2e041d85a06fd1bfa4 Mon Sep 17 00:00:00 2001
From: Waqas Hussain <waqas20@gmail.com>
Date: Sun, 14 Jun 2009 21:01:30 +0500
Subject: util.pluginloader: Initial commit - a plugin resource loader

---
 util/pluginloader.lua | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 util/pluginloader.lua

(limited to 'util')

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;
-- 
cgit v1.2.3