diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-12-02 20:31:54 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-12-02 20:31:54 +0000 |
commit | 6df0af47765087bbe8e54ddc1272b303fcc875d2 (patch) | |
tree | f8fcb089e34b110076480740e362583b12879062 | |
parent | 7add1f641eec3cf3d757df8a63ef4766c77280a5 (diff) | |
download | prosody-6df0af47765087bbe8e54ddc1272b303fcc875d2.tar.gz prosody-6df0af47765087bbe8e54ddc1272b303fcc875d2.zip |
prosodyctl: Experimental 'addplugin' command
-rwxr-xr-x | prosodyctl | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -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 --------------------- |