]> granicus.if.org Git - ejabberd/commitdiff
Add start_module/2
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Tue, 8 Jul 2014 16:57:43 +0000 (20:57 +0400)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Tue, 8 Jul 2014 16:58:03 +0000 (20:58 +0400)
src/gen_mod.erl

index 261e6c6dddea60eb948188c19015eb83ef8bc3a0..6dac8cdef585f8d2caff7de001e168e822fa3a23 100644 (file)
@@ -28,7 +28,7 @@
 
 -author('alexey@process-one.net').
 
--export([start/0, start_module/3, stop_module/2,
+-export([start/0, start_module/2, start_module/3, stop_module/2,
         stop_module_keep_config/2, get_opt/3, get_opt/4,
         get_opt_host/3, db_type/1, db_type/2, get_module_opt/5,
         get_module_opt_host/3, loaded_modules/1,
@@ -60,6 +60,19 @@ start() ->
             {keypos, #ejabberd_module.module_host}]),
     ok.
 
+-spec start_module(binary(), atom()) -> any().
+
+start_module(Host, Module) ->
+    Modules = ejabberd_config:get_option(
+               {modules, Host},
+               fun(L) when is_list(L) -> L end, []),
+    case lists:keyfind(Module, 1, Modules) of
+       {_, Opts} ->
+           start_module(Host, Module, Opts);
+       false ->
+           {error, not_found_in_config}
+    end.
+
 -spec start_module(binary(), atom(), opts()) -> any().
 
 start_module(Host, Module, Opts) ->