summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2011-09-09 17:43:09 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2011-09-09 17:43:09 +0100
commit3330b3a2f392dc8a8f3567b6d4f7e9e54e579dc3 (patch)
tree75c4652b45a438512d01afb931b09a719e379515 /src
parent6a8e57f0de0aaac677ddd0ed65e599905d7afc3e (diff)
downloadrabbitmq-server-git-3330b3a2f392dc8a8f3567b6d4f7e9e54e579dc3.tar.gz
stubs for plugin enabling
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_plugin.erl19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/rabbit_plugin.erl b/src/rabbit_plugin.erl
index d5a6ee3f50..a95a191daa 100644
--- a/src/rabbit_plugin.erl
+++ b/src/rabbit_plugin.erl
@@ -79,16 +79,16 @@ usage() ->
action(list, [], _Opts, PluginsDir, PluginsDistDir) ->
format_plugins(find_plugins(PluginsDir), find_plugins(PluginsDistDir));
-action(enable, ToInstall, _Opts, PluginsDir, PluginsDistDir) ->
+action(enable, ToEnable, _Opts, PluginsDir, PluginsDistDir) ->
AllPlugins = usort_plugins(find_plugins(PluginsDir) ++
find_plugins(PluginsDistDir)),
- ToInstall1 = [list_to_atom(Name) || Name <- ToInstall],
+ ToEnable1 = [list_to_atom(Name) || Name <- ToEnable],
{Found, Missing} = lists:foldl(fun (#plugin{name = Name}, {Fs, Ms}) ->
case lists:member(Name, Ms) of
true -> {[Name|Fs], Ms -- [Name]};
false -> {Fs, Ms}
end
- end, {[], ToInstall1}, AllPlugins),
+ end, {[], ToEnable1}, AllPlugins),
case Missing of
[] -> ok;
_ -> io:format("Warning: the following plugins could not be found: ~p~n",
@@ -99,9 +99,15 @@ action(enable, ToInstall, _Opts, PluginsDir, PluginsDistDir) ->
fun (App, Deps) -> [{App, Dep} || Dep <- Deps] end,
[{Name, Deps}
|| #plugin{name = Name, dependencies = Deps} <- AllPlugins]),
- InstallOrder = digraph_utils:reachable(Found, G),
+ EnableOrder = digraph_utils:reachable(Found, G),
true = digraph:delete(G),
- io:format("Marked for installation: ~p~n", [InstallOrder]).
+ io:format("Marked for enabling: ~p~n", [EnableOrder]),
+ EnableOrderPlugins = [Plugin || Plugin = #plugin{name = Name} <- AllPlugins,
+ lists:member(Name, EnableOrder)],
+ ok = lists:foldl(fun (#plugin{name = Name}, ok) ->
+ io:format("Enabling ~p~n", [Name])
+ end, ok, EnableOrderPlugins),
+ update_enabled_plugins(Found).
%%----------------------------------------------------------------------------
@@ -199,3 +205,6 @@ filter_applications(Applications) ->
false;
_ -> true
end].
+
+update_enabled_plugins(NewPlugins) ->
+ io:format("Adding ~p to enabled plugins~n", [NewPlugins]).