diff options
| author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-09 17:43:09 +0100 |
|---|---|---|
| committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-09 17:43:09 +0100 |
| commit | 3330b3a2f392dc8a8f3567b6d4f7e9e54e579dc3 (patch) | |
| tree | 75c4652b45a438512d01afb931b09a719e379515 /src | |
| parent | 6a8e57f0de0aaac677ddd0ed65e599905d7afc3e (diff) | |
| download | rabbitmq-server-git-3330b3a2f392dc8a8f3567b6d4f7e9e54e579dc3.tar.gz | |
stubs for plugin enabling
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_plugin.erl | 19 |
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]). |
