summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2016-02-09 14:35:47 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2016-02-09 14:35:47 +0000
commitfbb49b43fd6a3472fffb6ad7f0ecea94a4727926 (patch)
treef638ac304e5f0006311ebe17c9a7648baad771e7 /src
parentbbaf22bd1fe2397dd0f97cf2fcde84db42e62837 (diff)
downloadrabbitmq-server-git-fbb49b43fd6a3472fffb6ad7f0ecea94a4727926.tar.gz
Additional config gile
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_config.erl38
1 files changed, 31 insertions, 7 deletions
diff --git a/src/rabbit_config.erl b/src/rabbit_config.erl
index 7025805f99..c2c53e56b2 100644
--- a/src/rabbit_config.erl
+++ b/src/rabbit_config.erl
@@ -38,15 +38,15 @@ get_confs() ->
end.
prepare_config(Configs) ->
- case {init:get_argument(conf_dir), init:get_argument(conf_gen_script)} of
- {{ok, ConfDir}, {ok, ConfScript}} ->
+ case {init:get_argument(conf_dir), init:get_argument(conf_script_dir)} of
+ {{ok, ConfDir}, {ok, ScriptDir}} ->
ConfFiles = [Config++".conf" || [Config] <- Configs,
rabbit_file:is_file(Config ++
".conf")],
case ConfFiles of
[] -> ok;
_ ->
- case generate_config_file(ConfFiles, ConfDir, ConfScript) of
+ case generate_config_file(ConfFiles, ConfDir, ScriptDir) of
{ok, GeneratedConfigFile} ->
{ok, GeneratedConfigFile};
{error, Reason} ->
@@ -59,14 +59,21 @@ prepare_config(Configs) ->
update_app_config(ConfigFile) ->
ok = application_controller:change_application_data([], [ConfigFile]).
-generate_config_file(ConfFiles, ConfDir, ConfScript) ->
- SchemaFile = filename:join([filename:dirname(ConfScript), "rabbitmq.schema"]),
+generate_config_file(ConfFiles, ConfDir, ScriptDir) ->
+ SchemaFile = filename:join([ScriptDir, "rabbitmq.schema"]),
+ Cuttlefish = filename:join([ScriptDir, "cuttlefish"]),
GeneratedDir = filename:join([ConfDir, "generated"]),
+
+ AdditionalConfigArg = case get_additional_config() of
+ {ok, FileName} -> [" -a ", FileName];
+ none -> []
+ end,
rabbit_file:recursive_delete([GeneratedDir]),
- Command = lists:concat(["escript ", "\"", ConfScript, "\"",
+ Command = lists:concat(["escript ", "\"", Cuttlefish, "\"",
" -f rabbitmq -i ", "\"", SchemaFile, "\"",
" -e ", "\"", ConfDir, "\"",
- [[" -c ", ConfFile] || ConfFile <- ConfFiles]]),
+ [[" -c ", ConfFile] || ConfFile <- ConfFiles],
+ AdditionalConfigArg]),
Result = rabbit_misc:os_cmd(Command),
case string:str(Result, " -config ") of
0 -> {error, {generaion_error, Result}};
@@ -77,4 +84,21 @@ generate_config_file(ConfFiles, ConfDir, ConfScript) ->
ResultFile),
{ok, ResultFile}
end.
+
+get_additional_config() ->
+ case init:get_argument(conf_additional) of
+ {ok, FileName} ->
+ ConfigName = FileName ++ ".config",
+ case rabbit_file:is_file(ConfigName) of
+ true -> {ok, ConfigName};
+ false -> none
+ end;
+ _ -> none
+ end.
+
+
+
+
+
+
\ No newline at end of file