Comparison

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
comparison
equal deleted inserted replaced
2276:d9302be05f86 2277:c5d3905c98a6
460 460
461 show_message(error_messages[msg]) 461 show_message(error_messages[msg])
462 return 1; 462 return 1;
463 end 463 end
464 464
465 function commands.addplugin(arg)
466 local url = arg[1];
467 if url:match("^http://") then
468 local http = require "socket.http";
469 show_message("Fetching...");
470 local code, err = http.request(url);
471 if not code then
472 show_message("Failed: "..err);
473 return 1;
474 end
475 if url:match("%.lua$") then
476 local ok, err = datamanager.store(url:match("/mod_([^/]+)$"), "*", "plugins", {code});
477 if not ok then
478 show_message("Failed to save to data store: "..err);
479 return 1;
480 end
481 end
482 show_message("Saved. Don't forget to load the module using the config file or admin console!");
483 else
484 show_message("Sorry, I don't understand how to fetch plugins from there.");
485 end
486 end
465 487
466 --------------------- 488 ---------------------
467 489
468 if command and command:match("^mod_") then -- Is a command in a module 490 if command and command:match("^mod_") then -- Is a command in a module
469 local module_name = command:match("^mod_(.+)"); 491 local module_name = command:match("^mod_(.+)");