Comparison

prosodyctl @ 4324:5e7cba840409

prosodyctl: Add 'about' command to list Prosody version, directories, and various other stuff
author Matthew Wild <mwild1@gmail.com>
date Mon, 27 Jun 2011 12:02:50 +0100
parent 4167:9c60cc8dc142
child 4331:9c45858e3208
comparison
equal deleted inserted replaced
4323:53f3c3001499 4324:5e7cba840409
483 483
484 commands.stop(arg); 484 commands.stop(arg);
485 return commands.start(arg); 485 return commands.start(arg);
486 end 486 end
487 487
488 function commands.about(arg)
489 require "util.array";
490 require "util.iterators";
491
492 print("Prosody "..(prosody.version or "(unknown version)"));
493 print("");
494 print("# Prosody directories");
495 print("Data directory: ", CFG_DATADIR or "./");
496 print("Plugin directory:", CFG_PLUGINDIR or "./");
497 print("Config directory:", CFG_CONFIGDIR or "./");
498 print("Source directory:", CFG_SOURCEDIR or "./");
499 print("");
500 print("# Lua environment");
501 print("Lua version: ", _G._VERSION);
502 print("");
503 print("Lua module search paths:");
504 for path in package.path:gmatch("[^;]+") do
505 print(" "..path);
506 end
507 print("");
508 print("Lua C module search paths:");
509 for path in package.cpath:gmatch("[^;]+") do
510 print(" "..path);
511 end
512 print("");
513 print("# Lua module versions");
514 local module_versions, longest_name = {}, 8;
515 for name, module in pairs(package.loaded) do
516 if type(module) == "table" and rawget(module, "_VERSION")
517 and name ~= "_G" and not name:match("%.") then
518 if #name > longest_name then
519 longest_name = #name;
520 end
521 module_versions[name] = module._VERSION;
522 end
523 end
524 local sorted_keys = array.collect(keys(module_versions)):sort();
525 for _, name in ipairs(array.collect(keys(module_versions)):sort()) do
526 print(name..":"..string.rep(" ", longest_name-#name), module_versions[name]);
527 end
528 print("");
529 end
530
488 -- ejabberdctl compatibility 531 -- ejabberdctl compatibility
489 532
490 function commands.register(arg) 533 function commands.register(arg)
491 local user, host, password = unpack(arg); 534 local user, host, password = unpack(arg);
492 if (not (user and host)) or arg[1] == "--help" then 535 if (not (user and host)) or arg[1] == "--help" then
586 print("Usage: "..arg[0].." COMMAND [OPTIONS]"); 629 print("Usage: "..arg[0].." COMMAND [OPTIONS]");
587 print(""); 630 print("");
588 print("Where COMMAND may be one of:\n"); 631 print("Where COMMAND may be one of:\n");
589 632
590 local hidden_commands = require "util.set".new{ "register", "unregister", "addplugin" }; 633 local hidden_commands = require "util.set".new{ "register", "unregister", "addplugin" };
591 local commands_order = { "adduser", "passwd", "deluser", "start", "stop", "restart" }; 634 local commands_order = { "adduser", "passwd", "deluser", "start", "stop", "restart", "about" };
592 635
593 local done = {}; 636 local done = {};
594 637
595 for _, command_name in ipairs(commands_order) do 638 for _, command_name in ipairs(commands_order) do
596 local command = commands[command_name]; 639 local command = commands[command_name];