mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-22 17:28:25 +01:00
ejabberdctl: Document exclusive ejabberdctl commands like all the others
This commit is contained in:
parent
e9de3748bd
commit
1d65f4471b
@ -32,6 +32,7 @@
|
|||||||
%% gen_server callbacks
|
%% gen_server callbacks
|
||||||
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
||||||
terminate/2, code_change/3]).
|
terminate/2, code_change/3]).
|
||||||
|
-export([get_commands_spec/0]).
|
||||||
|
|
||||||
-include("ejabberd_ctl.hrl").
|
-include("ejabberd_ctl.hrl").
|
||||||
-include("ejabberd_commands.hrl").
|
-include("ejabberd_commands.hrl").
|
||||||
@ -90,6 +91,7 @@ start_link() ->
|
|||||||
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
|
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
|
||||||
|
|
||||||
init([]) ->
|
init([]) ->
|
||||||
|
ejabberd_commands:register_commands(?MODULE, get_commands_spec()),
|
||||||
{ok, #state{}}.
|
{ok, #state{}}.
|
||||||
|
|
||||||
handle_call(Request, From, State) ->
|
handle_call(Request, From, State) ->
|
||||||
@ -105,6 +107,7 @@ handle_info(Info, State) ->
|
|||||||
{noreply, State}.
|
{noreply, State}.
|
||||||
|
|
||||||
terminate(_Reason, _State) ->
|
terminate(_Reason, _State) ->
|
||||||
|
ejabberd_commands:unregister_commands(get_commands_spec()),
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
code_change(_OldVsn, State, _Extra) ->
|
code_change(_OldVsn, State, _Extra) ->
|
||||||
@ -478,11 +481,7 @@ make_status(Error) ->
|
|||||||
get_list_commands(Version) ->
|
get_list_commands(Version) ->
|
||||||
try ejabberd_commands:list_commands(Version) of
|
try ejabberd_commands:list_commands(Version) of
|
||||||
Commands ->
|
Commands ->
|
||||||
[tuple_command_help(Command)
|
[tuple_command_help(Command) || Command <- Commands]
|
||||||
|| {N,_,_}=Command <- Commands,
|
|
||||||
%% Don't show again those commands, because they are already
|
|
||||||
%% announced by ejabberd_ctl itself
|
|
||||||
N /= status, N /= stop, N /= restart]
|
|
||||||
catch
|
catch
|
||||||
exit:_ ->
|
exit:_ ->
|
||||||
[]
|
[]
|
||||||
@ -541,15 +540,7 @@ print_usage(Version) ->
|
|||||||
{MaxC, ShCode} = get_shell_info(),
|
{MaxC, ShCode} = get_shell_info(),
|
||||||
print_usage(dual, MaxC, ShCode, Version).
|
print_usage(dual, MaxC, ShCode, Version).
|
||||||
print_usage(HelpMode, MaxC, ShCode, Version) ->
|
print_usage(HelpMode, MaxC, ShCode, Version) ->
|
||||||
AllCommands =
|
AllCommands = get_list_commands(Version),
|
||||||
[
|
|
||||||
{"help", ["[arguments]"], "Get help"},
|
|
||||||
{"status", [], "Get ejabberd status"},
|
|
||||||
{"stop", [], "Stop ejabberd"},
|
|
||||||
{"restart", [], "Restart ejabberd"},
|
|
||||||
{"mnesia", ["[info]"], "show information of Mnesia system"},
|
|
||||||
{"print_sql_schema", ["db_type", "db_version", "new_schema"], "print SQL schema for the given RDBMS"}] ++
|
|
||||||
get_list_commands(Version),
|
|
||||||
|
|
||||||
print(
|
print(
|
||||||
["Usage: ", "ejabberdctl", " [--no-timeout] [--node ", ?A("nodename"), "] [--version ", ?A("api_version"), "] ",
|
["Usage: ", "ejabberdctl", " [--no-timeout] [--node ", ?A("nodename"), "] [--version ", ?A("api_version"), "] ",
|
||||||
@ -956,3 +947,30 @@ disable_logging() ->
|
|||||||
disable_logging() ->
|
disable_logging() ->
|
||||||
logger:set_primary_config(level, none).
|
logger:set_primary_config(level, none).
|
||||||
-endif.
|
-endif.
|
||||||
|
|
||||||
|
%%-----------------------------
|
||||||
|
%% Register commands
|
||||||
|
%%-----------------------------
|
||||||
|
|
||||||
|
get_commands_spec() ->
|
||||||
|
[
|
||||||
|
#ejabberd_commands{name = help, tags = [ejabberdctl],
|
||||||
|
desc = "Get list of commands, or help of a command (only ejabberdctl)",
|
||||||
|
longdesc = "This command is exclusive for the ejabberdctl command-line script, "
|
||||||
|
"don't attempt to execute it using any other API frontend."},
|
||||||
|
#ejabberd_commands{name = mnesia_info_ctl, tags = [ejabberdctl, mnesia],
|
||||||
|
desc = "Show information of Mnesia system (only ejabberdctl)",
|
||||||
|
note = "renamed in 24.01",
|
||||||
|
longdesc = "This command is exclusive for the ejabberdctl command-line script, "
|
||||||
|
"don't attempt to execute it using any other API frontend."},
|
||||||
|
#ejabberd_commands{name = print_sql_schema, tags = [ejabberdctl, sql],
|
||||||
|
desc = "Print SQL schema for the given RDBMS (only ejabberdctl)",
|
||||||
|
longdesc = "This command is exclusive for the ejabberdctl command-line script, "
|
||||||
|
"don't attempt to execute it using any other API frontend.",
|
||||||
|
note = "added in 24.01",
|
||||||
|
args = [{db_type, string}, {db_version, string}, {new_schema, string}],
|
||||||
|
args_desc = ["Database type: pgsql | mysql | sqlite",
|
||||||
|
"Your database version: 16.1, 8.2.0...",
|
||||||
|
"Use new schema: 0, false, 1 or true"],
|
||||||
|
args_example = ["pgsql", "16.1", "true"]}
|
||||||
|
].
|
||||||
|
@ -42,8 +42,8 @@ init([]) ->
|
|||||||
worker(ejabberd_cluster),
|
worker(ejabberd_cluster),
|
||||||
worker(translate),
|
worker(translate),
|
||||||
worker(ejabberd_access_permissions),
|
worker(ejabberd_access_permissions),
|
||||||
worker(ejabberd_ctl),
|
|
||||||
worker(ejabberd_commands),
|
worker(ejabberd_commands),
|
||||||
|
worker(ejabberd_ctl),
|
||||||
worker(ejabberd_admin),
|
worker(ejabberd_admin),
|
||||||
supervisor(ejabberd_listener),
|
supervisor(ejabberd_listener),
|
||||||
worker(ejabberd_pkix),
|
worker(ejabberd_pkix),
|
||||||
|
Loading…
Reference in New Issue
Block a user