aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2021-07-29 23:13:53 +0200
committerBadlop <badlop@process-one.net>2021-07-30 01:14:31 +0200
commit41808a63a0c7ccd5deb3498c4946f88f1ddd1960 (patch)
treeac7553e3e1ea4e37648a6da836cc5f4d89a2541f
parentStore who defines a command, specially when defined by ejabberd modules (diff)
Show definer module in "ejabberdctl help" when it's a gen_mod
-rw-r--r--src/ejabberd_ctl.erl12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/ejabberd_ctl.erl b/src/ejabberd_ctl.erl
index ce642727f..04e383d53 100644
--- a/src/ejabberd_ctl.erl
+++ b/src/ejabberd_ctl.erl
@@ -827,6 +827,7 @@ print_usage_command(Cmd, MaxC, ShCode, Version) ->
print_usage_command2(Cmd, C, MaxC, ShCode) ->
#ejabberd_commands{
tags = TagsAtoms,
+ definer = Definer,
desc = Desc,
args = ArgsDef,
longdesc = LongDesc,
@@ -851,6 +852,15 @@ print_usage_command2(Cmd, C, MaxC, ShCode) ->
TagsFmt = [" ",?B("Tags"),":", prepare_long_line(8, MaxC, [?G(atom_to_list(TagA)) || TagA <- TagsAtoms])],
+ IsDefinerMod = case Definer of
+ unknown -> true;
+ _ -> lists:member(gen_mod, proplists:get_value(behaviour, Definer:module_info(attributes)))
+ end,
+ ModuleFmt = case IsDefinerMod of
+ true -> [" ",?B("Module"),": ", atom_to_list(Definer), "\n\n"];
+ false -> []
+ end,
+
DescFmt = [" ",?B("Description"),":", prepare_description(15, MaxC, Desc)],
LongDescFmt = case LongDesc of
@@ -866,7 +876,7 @@ print_usage_command2(Cmd, C, MaxC, ShCode) ->
case Cmd of
"help" -> ok;
_ -> print([NameFmt, "\n", ArgsFmt, "\n", ReturnsFmt,
- "\n\n", XmlrpcFmt, TagsFmt, "\n\n", DescFmt, "\n\n"], [])
+ "\n\n", XmlrpcFmt, TagsFmt, "\n\n", ModuleFmt, DescFmt, "\n\n"], [])
end,
print([LongDescFmt, NoteEjabberdctl], []).