From: Evgeny Khramtsov Date: Mon, 29 Apr 2019 18:15:52 +0000 (+0300) Subject: Provide a suggestion when unknown module is detected X-Git-Tag: 19.05~56 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c56209a27da0d7dab254f419a9d64d96fb2f55d9;p=ejabberd Provide a suggestion when unknown module is detected --- 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 ->