summaryrefslogtreecommitdiff
path: root/src/rabbit.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rabbit.erl')
-rw-r--r--src/rabbit.erl19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 8c36a9f0a4..206cb4211d 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -40,6 +40,8 @@
-export([log_location/1]).
+-export([all_module_attributes/1]).
+
%%---------------------------------------------------------------------------
%% Boot steps.
-export([maybe_insert_default_data/0]).
@@ -313,20 +315,21 @@ module_attributes(Module) ->
V
end.
-boot_steps() ->
+all_module_attributes(Name) ->
AllApps = [App || {App, _, _} <- application:loaded_applications()],
Modules = lists:usort(
lists:append([Modules
|| {ok, Modules} <-
[application:get_key(App, modules)
|| App <- AllApps]])),
- UnsortedSteps =
- lists:flatmap(fun (Module) ->
- [{StepName, Attributes}
- || {rabbit_boot_step, [{StepName, Attributes}]}
- <- module_attributes(Module)]
- end, Modules),
- sort_boot_steps(UnsortedSteps).
+ lists:flatmap(fun (Module) ->
+ [{StepName, Attributes}
+ || {N, [{StepName, Attributes}]}
+ <- module_attributes(Module), N =:= Name]
+ end, Modules).
+
+boot_steps() ->
+ sort_boot_steps(all_module_attributes(rabbit_boot_step)).
sort_boot_steps(UnsortedSteps) ->
G = digraph:new([acyclic]),