aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-04-29 21:15:52 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-04-29 21:15:52 +0300
commitc56209a27da0d7dab254f419a9d64d96fb2f55d9 (patch)
tree3ae1b7d9efeb8ef7450d02b87dd690d6b24406bb
parentProvide a suggestion when unknown option is detected (diff)
Provide a suggestion when unknown module is detected
-rw-r--r--src/ejabberd_config.erl2
-rw-r--r--src/gen_mod.erl8
2 files changed, 7 insertions, 3 deletions
diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl
index 00120fcb3..40d157a86 100644
--- a/src/ejabberd_config.erl
+++ b/src/ejabberd_config.erl
@@ -39,7 +39,7 @@
default_queue_type/1, queue_dir/0, fsm_limit_opts/1,
use_cache/1, cache_size/1, cache_missed/1, cache_life_time/1,
codec_options/1, get_plain_terms_file/2, negotiation_timeout/0,
- similar_option/2]).
+ similar_option/2, get_modules/0]).
-export([start/2]).
diff --git a/src/gen_mod.erl b/src/gen_mod.erl
index 9ff851ed5..eb433de54 100644
--- a/src/gen_mod.erl
+++ b/src/gen_mod.erl
@@ -740,11 +740,15 @@ format_module_error(Module, Fun, Arity, Opts, Class, Reason, St) ->
IsCallbackExported = erlang:function_exported(Module, Fun, Arity),
case {Class, Reason} of
{error, undef} when not IsLoaded ->
- io_lib:format("Failed to ~s unknown module ~s: "
+ io_lib:format("Failed to ~s unknown module ~s, "
+ "did you mean ~s? Hint: "
"make sure there is no typo and ~s.beam "
"exists inside either ~s or ~s "
"directory",
- [Fun, Module, Module,
+ [Fun, Module,
+ ejabberd_config:similar_option(
+ Module, ejabberd_config:get_modules()),
+ Module,
filename:dirname(code:which(?MODULE)),
ext_mod:modules_dir()]);
{error, undef} when not IsCallbackExported ->