]> granicus.if.org Git - ejabberd/commitdiff
Provide a suggestion when unknown module is detected
authorEvgeny Khramtsov <ekhramtsov@process-one.net>
Mon, 29 Apr 2019 18:15:52 +0000 (21:15 +0300)
committerEvgeny Khramtsov <ekhramtsov@process-one.net>
Mon, 29 Apr 2019 18:15:52 +0000 (21:15 +0300)
src/ejabberd_config.erl
src/gen_mod.erl

index 00120fcb3e7d9a50128e61b8609b8e147cca0a44..40d157a86b609fbbdf00fcfdecf3c3da8e5e0ea8 100644 (file)
@@ -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]).
 
index 9ff851ed500553c92ae3eef35749be8e47d9f073..eb433de54a5930be37b0ee248f0fee692ee6d335 100644 (file)
@@ -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 ->