aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2009-12-02 20:31:54 +0000
committerMatthew Wild <mwild1@gmail.com>2009-12-02 20:31:54 +0000
commit6df0af47765087bbe8e54ddc1272b303fcc875d2 (patch)
treef8fcb089e34b110076480740e362583b12879062
parent7add1f641eec3cf3d757df8a63ef4766c77280a5 (diff)
downloadprosody-6df0af47765087bbe8e54ddc1272b303fcc875d2.tar.gz
prosody-6df0af47765087bbe8e54ddc1272b303fcc875d2.zip
prosodyctl: Experimental 'addplugin' command
-rwxr-xr-xprosodyctl22
1 files changed, 22 insertions, 0 deletions
diff --git a/prosodyctl b/prosodyctl
index 522ebde9..8f79046f 100755
--- a/prosodyctl
+++ b/prosodyctl
@@ -462,6 +462,28 @@ function commands.unregister(arg)
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
---------------------