summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/rabbitmq-server1
-rw-r--r--scripts/rabbitmq-service.bat3
-rw-r--r--src/rabbit.erl4
-rw-r--r--src/rabbit_config.erl39
4 files changed, 37 insertions, 10 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index 8eca8b6967..d5a5948f48 100755
--- a/scripts/rabbitmq-server
+++ b/scripts/rabbitmq-server
@@ -72,7 +72,6 @@ RABBITMQ_DIST_PORT=$RABBITMQ_DIST_PORT \
-conf_gen_script "`dirname $0`/cuttlefish" \
-extra "${RABBITMQ_NODENAME}"
-exit 89
PRELAUNCH_RESULT=$?
if [ ${PRELAUNCH_RESULT} = 2 ] ; then
# dist port is mentioned in config, so do not set it
diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat
index a80cb3aa6d..600b175df3 100644
--- a/scripts/rabbitmq-service.bat
+++ b/scripts/rabbitmq-service.bat
@@ -140,7 +140,8 @@ if exist "!RABBITMQ_CONFIG_FILE!.config" (
) else if exist "!RABBITMQ_CONFIG_FILE!.conf" (
set RABBITMQ_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE!" -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" -conf_gen_script "%~dp0/cuttlefish"
) else (
- set RABBITMQ_CONFIG_ARG=
+ rem Always use generated config arguments, because file existance can change beetween restarts
+ set RABBITMQ_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE!" -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" -conf_gen_script "%~dp0/cuttlefish"
)
set RABBITMQ_LISTEN_ARG=
diff --git a/src/rabbit.erl b/src/rabbit.erl
index f2f08ff495..2715b80eb5 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -272,9 +272,7 @@ start() ->
boot() ->
start_it(fun() ->
- case rabbit_config:prepare_config() of
- {ok, ConfigFile} ->
- rabbit_config:update_app_config(ConfigFile);
+ case rabbit_config:prepare_and_use_config() of
{error, Reason} ->
log_boot_error_and_exit(
generate_config_file,
diff --git a/src/rabbit_config.erl b/src/rabbit_config.erl
index fae8d65842..7025805f99 100644
--- a/src/rabbit_config.erl
+++ b/src/rabbit_config.erl
@@ -1,11 +1,40 @@
-module(rabbit_config).
--export([generate_config_file/3, prepare_config/0, prepare_config/1, update_app_config/1]).
+-export([
+ generate_config_file/3,
+ prepare_and_use_config/0,
+ prepare_config/1,
+ update_app_config/1]).
-prepare_config() ->
+prepare_and_use_config() ->
+ case config_exist() of
+ true ->
+ % Use .config file
+ ok;
+ false ->
+ case prepare_config(get_confs()) of
+ ok ->
+ % Nothing to generate from
+ ok;
+ {ok, GeneratedConfigFile} ->
+ % Generated config file
+ update_app_config(GeneratedConfigFile);
+ {error, Err} ->
+ % Error generating config
+ {error, Err}
+ end
+ end.
+
+config_exist() ->
+ case init:get_argument(config) of
+ {ok, Config} -> rabbit_file:is_file(Config ++ ".config");
+ _ -> false
+ end.
+
+get_confs() ->
case init:get_argument(conf) of
- {ok, Configs} -> prepare_config(Configs);
- _ -> ok
+ {ok, Configs} -> Configs;
+ _ -> []
end.
prepare_config(Configs) ->
@@ -44,7 +73,7 @@ generate_config_file(ConfFiles, ConfDir, ConfScript) ->
_ ->
[OutFile] = rabbit_file:wildcard("rabbitmq.*.config", GeneratedDir),
ResultFile = filename:join([GeneratedDir, "rabbitmq.config"]),
- Ren = rabbit_file:rename(filename:join([GeneratedDir, OutFile]),
+ rabbit_file:rename(filename:join([GeneratedDir, OutFile]),
ResultFile),
{ok, ResultFile}
end.