prosodyctl: Experimental 'addplugin' command

Wed, 02 Dec 2009 20:31:54 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Wed, 02 Dec 2009 20:31:54 +0000
changeset 2292
c5d3905c98a6
parent 2276
d9302be05f86
child 2293
8c10f13c0c20

prosodyctl: Experimental 'addplugin' command

prosodyctl file | annotate | diff | comparison | revisions
--- a/prosodyctl	Wed Dec 02 18:05:03 2009 +0000
+++ b/prosodyctl	Wed Dec 02 20:31:54 2009 +0000
@@ -462,6 +462,28 @@
 	return 1;
 end
 
+function commands.addplugin(arg)
+	local url = arg[1];
+	if url:match("^http://") then
+		local http = require "socket.http";
+		show_message("Fetching...");
+		local code, err = http.request(url);
+		if not code then
+			show_message("Failed: "..err);
+			return 1;
+		end
+		if url:match("%.lua$") then
+			local ok, err = datamanager.store(url:match("/mod_([^/]+)$"), "*", "plugins", {code});
+			if not ok then
+				show_message("Failed to save to data store: "..err);
+				return 1;
+			end
+		end
+		show_message("Saved. Don't forget to load the module using the config file or admin console!");
+	else
+		show_message("Sorry, I don't understand how to fetch plugins from there.");
+	end
+end
 
 ---------------------
 

mercurial