From: Badlop Date: Mon, 24 May 2010 11:56:52 +0000 (+0200) Subject: New ejabberd commands to update modified modules (EJAB-1237) X-Git-Tag: v2.1.4~26 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0bfda4e628760de4e94cd472750159dbfbe30f65;p=ejabberd New ejabberd commands to update modified modules (EJAB-1237) --- diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl index f301bcb56..1395ca167 100644 --- a/src/ejabberd_admin.erl +++ b/src/ejabberd_admin.erl @@ -31,6 +31,8 @@ %% Server status/0, reopen_log/0, stop_kindly/2, send_service_message_all_mucs/2, + %% Erlang + update_list/0, update_all/0, update_module/1, %% Accounts register/3, unregister/2, registered_users/1, @@ -95,6 +97,22 @@ commands() -> {leveldesc, string} ]}}}, + #ejabberd_commands{name = update_list, tags = [server], + desc = "List modified modules that can be updated", + module = ?MODULE, function = update_list_modified, + args = [], + result = {modules, {list, {module, string}}}}, + #ejabberd_commands{name = update_all, tags = [server], + desc = "Update all the modified modules", + module = ?MODULE, function = update_all, + args = [], + result = {res, rescode}}, + #ejabberd_commands{name = update_module, tags = [server], + desc = "Update the given module", + module = ?MODULE, function = update_module, + args = [{module, string}], + result = {res, rescode}}, + #ejabberd_commands{name = register, tags = [accounts], desc = "Register a user", module = ?MODULE, function = register, @@ -276,6 +294,22 @@ send_service_message_all_mucs(Subject, AnnouncementText) -> end, ?MYHOSTS). +%%% +%%% ejabberd_update +%%% + +update_list() -> + {ok, _Dir, UpdatedBeams, _Script, _LowLevelScript, _Check} = + ejabberd_update:update_info(), + [atom_to_list(Beam) || Beam <- UpdatedBeams]. + +update_all() -> + [update_module(ModStr) || ModStr <- update_list()]. + +update_module(ModuleNameString) -> + ModuleName = list_to_atom(ModuleNameString), + ejabberd_update:update([ModuleName]). + %%% %%% Account management %%%