summaryrefslogtreecommitdiff
path: root/deps/rabbit/src/rabbit_config.erl
diff options
context:
space:
mode:
Diffstat (limited to 'deps/rabbit/src/rabbit_config.erl')
-rw-r--r--deps/rabbit/src/rabbit_config.erl46
1 files changed, 46 insertions, 0 deletions
diff --git a/deps/rabbit/src/rabbit_config.erl b/deps/rabbit/src/rabbit_config.erl
new file mode 100644
index 0000000000..1198035a7a
--- /dev/null
+++ b/deps/rabbit/src/rabbit_config.erl
@@ -0,0 +1,46 @@
+-module(rabbit_config).
+
+-export([
+ config_files/0,
+ get_advanced_config/0
+ ]).
+
+-export([schema_dir/0]).
+-deprecated([{schema_dir, 0, eventually}]).
+
+-export_type([config_location/0]).
+
+-type config_location() :: string().
+
+get_confs() ->
+ case get_prelaunch_config_state() of
+ #{config_files := Confs} -> Confs;
+ _ -> []
+ end.
+
+schema_dir() ->
+ undefined.
+
+get_advanced_config() ->
+ case get_prelaunch_config_state() of
+ %% There can be only one advanced.config
+ #{config_advanced_file := FileName} when FileName =/= undefined ->
+ case rabbit_file:is_file(FileName) of
+ true -> FileName;
+ false -> none
+ end;
+ _ -> none
+ end.
+
+-spec config_files() -> [config_location()].
+config_files() ->
+ ConfFiles = [filename:absname(File) || File <- get_confs(),
+ filelib:is_regular(File)],
+ AdvancedFiles = case get_advanced_config() of
+ none -> [];
+ FileName -> [filename:absname(FileName)]
+ end,
+ AdvancedFiles ++ ConfFiles.
+
+get_prelaunch_config_state() ->
+ rabbit_prelaunch_conf:get_config_state().