summaryrefslogtreecommitdiff
path: root/src/rabbit_data.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rabbit_data.erl')
-rw-r--r--src/rabbit_data.erl61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/rabbit_data.erl b/src/rabbit_data.erl
new file mode 100644
index 0000000000..2af8d871ee
--- /dev/null
+++ b/src/rabbit_data.erl
@@ -0,0 +1,61 @@
+-module(rabbit_data).
+
+-export([dir/0,
+ mnesia_dir/0,
+ metadata_dir/0,
+ message_store_dir/0,
+ vhosts_store_dir/0,
+ quorum_queues_dir/0]).
+-export([metadata_file/1]).
+-export([plugins_expand_dir/0, plugins_dir/0, enabled_plugins_file/0]).
+
+dir() ->
+ mnesia_dir().
+
+mnesia_dir() ->
+ mnesia:system_info(directory).
+
+metadata_dir() ->
+ mnesia_dir().
+
+message_store_dir() ->
+ filename:join(mnesia_dir(), "msg_stores").
+
+vhosts_store_dir() ->
+ filename:join(message_store_dir(), "vhosts").
+
+quorum_queues_dir() ->
+ filename:join(mnesia_dir(), "quorum").
+
+metadata_file(FileName) when is_list(FileName); is_binary(FileName) ->
+ filename:join(metadata_dir(), FileName).
+
+upper_level_file(FileName) ->
+ filename:join(dir(), FileName).
+
+-spec plugins_expand_dir() -> file:filename().
+plugins_expand_dir() ->
+ case application:get_env(rabbit, plugins_expand_dir) of
+ {ok, ExpandDir} ->
+ ExpandDir;
+ _ ->
+ upper_level_file("plugins_expand_dir")
+ end.
+
+-spec plugins_dir() -> file:filename().
+plugins_dir() ->
+ case application:get_env(rabbit, plugins_dir) of
+ {ok, PluginsDistDir} ->
+ PluginsDistDir;
+ _ ->
+ upper_level_file("plugins_dir_stub")
+ end.
+
+-spec enabled_plugins_file() -> file:filename().
+enabled_plugins_file() ->
+ case application:get_env(rabbit, enabled_plugins_file) of
+ {ok, Val} ->
+ Val;
+ _ ->
+ upper_level_file("enabled_plugins")
+ end.