Diff

prosodyctl @ 2277:c5d3905c98a6

prosodyctl: Experimental 'addplugin' command
author Matthew Wild <mwild1@gmail.com>
date Wed, 02 Dec 2009 20:31:54 +0000
parent 2065:c384ae8ee17a
child 2329:e497718194a3
line wrap: on
line diff
--- 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
 
 ---------------------