summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2016-02-05 14:43:29 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2016-02-05 14:43:29 +0000
commit266f37db4b4bbf23c9559b10d7d716bfc66b6652 (patch)
treef53a61bf2449c4b9e6e092550376d38ed4284aa5
parent246c21eec2d8acce04ce5bafa283877f46351666 (diff)
downloadrabbitmq-server-git-266f37db4b4bbf23c9559b10d7d716bfc66b6652.tar.gz
Generation called from inside erlang only
-rwxr-xr-xgenerate-config3
-rw-r--r--generate-config.bat2
-rwxr-xr-xscripts/generate-config3
-rw-r--r--scripts/generate-config.bat2
-rwxr-xr-xscripts/rabbitmq-server38
-rw-r--r--scripts/rabbitmq-server.bat28
-rw-r--r--src/rabbit_config.erl50
-rw-r--r--src/rabbit_prelaunch.erl2
8 files changed, 64 insertions, 64 deletions
diff --git a/generate-config b/generate-config
deleted file mode 100755
index def36b1a13..0000000000
--- a/generate-config
+++ /dev/null
@@ -1,3 +0,0 @@
-rm -rf ./generated/rabbitmq.config &&
-./cuttlefish -e . -s ./schema -f rabbitmq $* &&
-mv ./generated/rabbitmq.*.config ./generated/rabbitmq.config \ No newline at end of file
diff --git a/generate-config.bat b/generate-config.bat
deleted file mode 100644
index 8032dac32b..0000000000
--- a/generate-config.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-del ".\generated\rabbitmq.config" && del ".\generated\rabbitmq.*.config" && "%ERLANG_HOME%\bin\escript.exe" .\cuttlefish -e "." -i .\rabbitmq.schema %* -f rabbitmq && ren ".\generated\rabbitmq.*.config" "rabbitmq.config"
diff --git a/scripts/generate-config b/scripts/generate-config
new file mode 100755
index 0000000000..475af2f9d2
--- /dev/null
+++ b/scripts/generate-config
@@ -0,0 +1,3 @@
+rm -rf ./generated/rabbitmq.config &&
+./cuttlefish -s ./schema -f rabbitmq $* &&
+mv ./generated/rabbitmq.*.config ./generated/rabbitmq.config \ No newline at end of file
diff --git a/scripts/generate-config.bat b/scripts/generate-config.bat
new file mode 100644
index 0000000000..9cc6231d24
--- /dev/null
+++ b/scripts/generate-config.bat
@@ -0,0 +1,2 @@
+@echo off
+del ".\generated\rabbitmq.config" && del ".\generated\rabbitmq.*.config" && "%ERLANG_HOME%\bin\escript.exe" .\cuttlefish -i .\rabbitmq.schema %* -f rabbitmq && ren ".\generated\rabbitmq.*.config" "rabbitmq.config"
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index 2a41f3e9cc..95bf009265 100755
--- a/scripts/rabbitmq-server
+++ b/scripts/rabbitmq-server
@@ -58,25 +58,24 @@ esac
RABBITMQ_EBIN_ROOT="${RABBITMQ_HOME}/ebin"
-generate_config() {
- rm -rf ${RABBITMQ_GENERATED_CONFIG_DIR}/generated/rabbitmq.config
- ./cuttlefish -e ${RABBITMQ_GENERATED_CONFIG_DIR} -s ./schema -c ${RABBITMQ_CONFIG_FILE}.conf -f rabbitmq
- mv ${RABBITMQ_GENERATED_CONFIG_DIR}/generated/rabbitmq.*.config ${RABBITMQ_GENERATED_CONFIG_DIR}/generated/rabbitmq.config
-}
-
-if [ -f "${RABBITMQ_CONFIG_FILE}.config" ]; then
- RABBITMQ_CONFIG_FILE_ACTUAL=$RABBITMQ_CONFIG_FILE
-else
-
- [ -f "${RABBITMQ_CONFIG_FILE}.conf" ] &&
- [ -d $RABBITMQ_GENERATED_CONFIG_DIR ] &&
- generate_config &&
- RABBITMQ_CONFIG_FILE_ACTUAL="${RABBITMQ_GENERATED_CONFIG_DIR}/generated/rabbitmq"
-fi
+# generate_config() {
+# rm -rf ${RABBITMQ_GENERATED_CONFIG_DIR}/generated/rabbitmq.config
+# ./cuttlefish -e ${RABBITMQ_GENERATED_CONFIG_DIR} -s ./schema -c ${RABBITMQ_CONFIG_FILE}.conf -f rabbitmq
+# mv ${RABBITMQ_GENERATED_CONFIG_DIR}/generated/rabbitmq.*.config ${RABBITMQ_GENERATED_CONFIG_DIR}/generated/rabbitmq.config
+# }
+
+# if [ -f "${RABBITMQ_CONFIG_FILE}.config" ]; then
+# RABBITMQ_CONFIG_FILE_ACTUAL=$RABBITMQ_CONFIG_FILE
+# else
+# [ -f "${RABBITMQ_CONFIG_FILE}.conf" ] &&
+# [ -d $RABBITMQ_GENERATED_CONFIG_DIR ] &&
+# generate_config &&
+# RABBITMQ_CONFIG_FILE_ACTUAL="${RABBITMQ_GENERATED_CONFIG_DIR}/generated/rabbitmq"
+# fi
set +e
-RABBITMQ_CONFIG_FILE_ACTUAL=$RABBITMQ_CONFIG_FILE_ACTUAL \
+RABBITMQ_CONFIG_FILE=$RABBITMQ_CONFIG_FILE \
RABBITMQ_DIST_PORT=$RABBITMQ_DIST_PORT \
${ERL_DIR}erl -pa "$RABBITMQ_EBIN_ROOT" \
-boot "${CLEAN_BOOT_FILE}" \
@@ -99,8 +98,11 @@ fi
set -e
-RABBITMQ_CONFIG_ARG=
-[ -f "${RABBITMQ_CONFIG_FILE_ACTUAL}.config" ] && RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_FILE_ACTUAL}"
+if [ -f "${RABBITMQ_CONFIG_FILE}.config" ]; then
+ RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_FILE}"
+elif [ -f "${RABBITMQ_CONFIG_FILE}.conf" ]; then
+ RABBITMQ_CONFIG_ARG="-conf ${RABBITMQ_CONFIG_FILE} -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} -conf_gen_script `dirname $0`/generate-config"
+fi
RABBITMQ_LISTEN_ARG=
[ "x" != "x$RABBITMQ_NODE_PORT" ] && [ "x" != "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_LISTEN_ARG="-rabbit tcp_listeners [{\""${RABBITMQ_NODE_IP_ADDRESS}"\","${RABBITMQ_NODE_PORT}"}]"
diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat
index 15dcab6616..3e3faca535 100644
--- a/scripts/rabbitmq-server.bat
+++ b/scripts/rabbitmq-server.bat
@@ -41,17 +41,17 @@ if not exist "!ERLANG_HOME!\bin\erl.exe" (
set RABBITMQ_EBIN_ROOT=!RABBITMQ_HOME!\ebin
-set RABBITMQ_CONFIG_FILE_ACTUAL="!RABBITMQ_CONFIG_FILE!"
-
-if not exist "!RABBITMQ_CONFIG_FILE!.config" (
- if exist "!RABBITMQ_CONFIG_FILE!.conf" (
- del "!RABBITMQ_GENERATED_CONFIG_DIR!\generated\rabbitmq.config"
- del "!RABBITMQ_GENERATED_CONFIG_DIR!\generated\rabbitmq.*.config"
- "!ERLANG_HOME!\bin\escript.exe" .\cuttlefish -e "!RABBITMQ_GENERATED_CONFIG_DIR!" -i .\rabbitmq.schema -c "!RABBITMQ_CONFIG_FILE!.conf" -f rabbitmq
- ren "!RABBITMQ_GENERATED_CONFIG_DIR!\generated\rabbitmq.*.config" "rabbitmq.config"
- set RABBITMQ_CONFIG_FILE_ACTUAL="!RABBITMQ_GENERATED_CONFIG_DIR!\generated\rabbitmq"
- )
-)
+set RABBITMQ_CONFIG_FILE="!RABBITMQ_CONFIG_FILE!"
+
+rem if not exist "!RABBITMQ_CONFIG_FILE!.config" (
+rem if exist "!RABBITMQ_CONFIG_FILE!.conf" (
+rem del "!RABBITMQ_GENERATED_CONFIG_DIR!\generated\rabbitmq.config"
+rem del "!RABBITMQ_GENERATED_CONFIG_DIR!\generated\rabbitmq.*.config"
+rem "!ERLANG_HOME!\bin\escript.exe" .\cuttlefish -e "!RABBITMQ_GENERATED_CONFIG_DIR!" -i .\rabbitmq.schema -c "!RABBITMQ_CONFIG_FILE!.conf" -f rabbitmq
+rem ren "!RABBITMQ_GENERATED_CONFIG_DIR!\generated\rabbitmq.*.config" "rabbitmq.config"
+rem set RABBITMQ_CONFIG_FILE_ACTUAL="!RABBITMQ_GENERATED_CONFIG_DIR!\generated\rabbitmq"
+rem )
+rem )
"!ERLANG_HOME!\bin\erl.exe" ^
-pa "!RABBITMQ_EBIN_ROOT!" ^
@@ -70,8 +70,10 @@ if ERRORLEVEL 2 (
set RABBITMQ_EBIN_PATH="-pa !RABBITMQ_EBIN_ROOT!"
-if exist "!RABBITMQ_CONFIG_FILE_ACTUAL!.config" (
- set RABBITMQ_CONFIG_ARG=-config "!RABBITMQ_CONFIG_FILE_ACTUAL!"
+if exist "!RABBITMQ_CONFIG_FILE!.config" (
+ set RABBITMQ_CONFIG_ARG=-config "!RABBITMQ_CONFIG_FILE!"
+) else if exist "!RABBITMQ_CONFIG_FILE!.conf" (
+ set RABBITMQ_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE!" -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" -conf_gen_script "%TDP0%/generate-config.bat"
) else (
set RABBITMQ_CONFIG_ARG=
)
diff --git a/src/rabbit_config.erl b/src/rabbit_config.erl
index cb2e6a144a..5e75223f63 100644
--- a/src/rabbit_config.erl
+++ b/src/rabbit_config.erl
@@ -1,37 +1,33 @@
-module(rabbit_config).
--export([generate_config_file/1, prepare_config/0]).
+-export([generate_config_file/3, prepare_config/0]).
prepare_config() ->
- {ok, Configs} = init:get_argument(config),
- ConfFiles = [Config++".conf" || [Config] <- Configs,
- rabbit_file:is_file(Config ++ ".conf")],
- case ConfFiles of
- [] -> ok;
- _ ->
- case generate_config_file(ConfFiles) of
- {ok, GeneratedConfigFile} ->
- ok = application_controller:change_application_data(
- [], [GeneratedConfigFile]);
- {error, Reason} ->
- {error, Reason}
- end
+ case {init:get_argument(conf), init:get_argument(conf_dir), init:get_argument(conf_gen_script)} of
+ {{ok, Configs}, {ok, ConfDir}, {ok, ConfScript}} ->
+ ConfFiles = [Config++".conf" || [Config] <- Configs,
+ rabbit_file:is_file(Config ++
+ ".conf")],
+ case ConfFiles of
+ [] -> ok;
+ _ ->
+ case generate_config_file(ConfFiles, ConfDir, ConfScript) of
+ {ok, GeneratedConfigFile} ->
+ ok = application_controller:change_application_data(
+ [], [GeneratedConfigFile]);
+ {error, Reason} ->
+ {error, Reason}
+ end
+ end;
+ _ -> ok
end.
-generate_config_file(ConfFiles) ->
- rabbit_file:recursive_delete("./generated"),
- ConfArg = [["-c", ConfFile] || ConfFile <- ConfFiles],
- Command = case os:type() of
- {unix, _} ->
- ["./generate-config ", ConfArg];
- {win32, _} ->
- [".generate-config.bat ", ConfArg];
- _ ->
- {error, os_unsupported}
- end,
- Result = os:cmd(Command),
+generate_config_file(ConfFiles, ConfDir, ConfScript) ->
+ rabbit_file:recursive_delete(filename:join([ConfDir, "generated"])),
+ Command = [ ConfScript, " -e ", ConfDir, [[" -c ", ConfFile] || ConfFile <- ConfFiles]],
+ Result = rabbit_misc:os_cmd(Command),
case string:str(Result, " -config ") of
0 -> {error, {generaion_error, Result}};
- _ -> {ok, "./generated/rabbitmq.config"}
+ _ -> {ok, filename:join([ConfDir, "generated", "rabbitmq.config"])}
end.
\ No newline at end of file
diff --git a/src/rabbit_prelaunch.erl b/src/rabbit_prelaunch.erl
index 0b3ca4960b..5ecdd75acc 100644
--- a/src/rabbit_prelaunch.erl
+++ b/src/rabbit_prelaunch.erl
@@ -79,7 +79,7 @@ duplicate_node_check(NodeName, NodeHost) ->
end.
dist_port_set_check() ->
- case os:getenv("RABBITMQ_CONFIG_FILE_ACTUAL") of
+ case os:getenv("RABBITMQ_CONFIG_FILE") of
false ->
ok;
File ->