92 ["invalid-hostname"] = "The given hostname is invalid"; |
92 ["invalid-hostname"] = "The given hostname is invalid"; |
93 ["no-password"] = "No password was supplied"; |
93 ["no-password"] = "No password was supplied"; |
94 ["no-such-user"] = "The given user does not exist on the server"; |
94 ["no-such-user"] = "The given user does not exist on the server"; |
95 ["unable-to-save-data"] = "Unable to store, perhaps you don't have permission?"; |
95 ["unable-to-save-data"] = "Unable to store, perhaps you don't have permission?"; |
96 ["no-pidfile"] = "There is no pidfile option in the configuration file, see http://prosody.im/doc/prosodyctl#pidfile for help"; |
96 ["no-pidfile"] = "There is no pidfile option in the configuration file, see http://prosody.im/doc/prosodyctl#pidfile for help"; |
|
97 ["no-such-method"] = "This module has no commands"; |
97 }, { __index = function (t,k) return "Error: "..(tostring(k):gsub("%-", " "):gsub("^.", string.upper)); end }); |
98 }, { __index = function (t,k) return "Error: "..(tostring(k):gsub("%-", " "):gsub("^.", string.upper)); end }); |
98 |
99 |
99 hosts = {}; |
100 hosts = {}; |
100 |
101 |
101 require "core.hostmanager" |
102 require "core.hostmanager" |
102 require "core.eventmanager".fire_event("server-starting"); |
103 require "core.eventmanager".fire_event("server-starting"); |
|
104 require "core.modulemanager" |
103 |
105 |
104 require "util.prosodyctl" |
106 require "util.prosodyctl" |
105 ----------------------- |
107 ----------------------- |
106 |
108 |
107 function show_message(msg, ...) |
109 function show_message(msg, ...) |
402 end |
404 end |
403 |
405 |
404 |
406 |
405 --------------------- |
407 --------------------- |
406 |
408 |
|
409 if command:match("^mod_") then -- Is a command in a module |
|
410 local module_name = command:match("^mod_(.+)"); |
|
411 local ret, err = modulemanager.load("*", module_name); |
|
412 if not ret then |
|
413 show_message("Failed to load module '"..module_name.."': "..err); |
|
414 os.exit(1); |
|
415 end |
|
416 |
|
417 table.remove(arg, 1); |
|
418 |
|
419 local module = modulemanager.get_module("*", module_name); |
|
420 if not module then |
|
421 show_message("Failed to load module '"..module_name.."': Unknown error"); |
|
422 os.exit(1); |
|
423 end |
|
424 |
|
425 if not modulemanager.module_has_method(module, "command") then |
|
426 show_message("Fail: mod_"..module_name.." does not support any commands"); |
|
427 os.exit(1); |
|
428 end |
|
429 |
|
430 local ok, ret = modulemanager.call_module_method(module, "command", arg); |
|
431 if ok then |
|
432 if type(ret) == "number" then |
|
433 os.exit(ret); |
|
434 elseif type(ret) == "string" then |
|
435 show_message(ret); |
|
436 end |
|
437 os.exit(0); -- :) |
|
438 else |
|
439 show_message("Failed to execute command: "..error_messages[ret]); |
|
440 os.exit(1); -- :( |
|
441 end |
|
442 end |
|
443 |
407 if not commands[command] then -- Show help for all commands |
444 if not commands[command] then -- Show help for all commands |
408 function show_usage(usage, desc) |
445 function show_usage(usage, desc) |
409 print(" "..usage); |
446 print(" "..usage); |
410 print(" "..desc); |
447 print(" "..desc); |
411 end |
448 end |