summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDaniil Fedotov <hairyhum@gmail.com>2018-08-09 15:23:16 +0100
committerDaniil Fedotov <hairyhum@gmail.com>2018-08-14 14:19:41 +0100
commit005d3f2f923f0bc6b0b7ad58ceff7db1e623f0fe (patch)
tree1e37d744af2e29efac8139f10b4d48645c3695c7 /scripts
parent7747cb45e337115fc74466c5ef5730c156411482 (diff)
downloadrabbitmq-server-git-005d3f2f923f0bc6b0b7ad58ceff7db1e623f0fe.tar.gz
Refactor config file discovery. Make advanced config load if no old format config is used
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/rabbitmq-defaults2
-rw-r--r--scripts/rabbitmq-defaults.bat2
-rwxr-xr-xscripts/rabbitmq-server128
-rw-r--r--scripts/rabbitmq-server.bat119
-rw-r--r--scripts/rabbitmq-service.bat125
5 files changed, 228 insertions, 148 deletions
diff --git a/scripts/rabbitmq-defaults b/scripts/rabbitmq-defaults
index a4d78e6986..37a8985892 100755
--- a/scripts/rabbitmq-defaults
+++ b/scripts/rabbitmq-defaults
@@ -39,7 +39,7 @@ LOG_BASE=${SYS_PREFIX}/var/log/rabbitmq
MNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesia
ENABLED_PLUGINS_FILE=${SYS_PREFIX}/etc/rabbitmq/enabled_plugins
GENERATED_CONFIG_DIR=${SYS_PREFIX}/var/lib/rabbitmq/config
-ADVANCED_CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/advanced
+ADVANCED_CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/advanced.config
SCHEMA_DIR=${SYS_PREFIX}/var/lib/rabbitmq/schema
PLUGINS_DIR="${RABBITMQ_HOME}/plugins"
diff --git a/scripts/rabbitmq-defaults.bat b/scripts/rabbitmq-defaults.bat
index 4fb09d0499..1cb605b80f 100644
--- a/scripts/rabbitmq-defaults.bat
+++ b/scripts/rabbitmq-defaults.bat
@@ -42,7 +42,7 @@ set LOG_BASE=!RABBITMQ_BASE!\log
set MNESIA_BASE=!RABBITMQ_BASE!\db
set ENABLED_PLUGINS_FILE=!RABBITMQ_BASE!\enabled_plugins
set GENERATED_CONFIG_DIR=!RABBITMQ_BASE!\config
-set ADVANCED_CONFIG_FILE=!RABBITMQ_BASE!\advanced
+set ADVANCED_CONFIG_FILE=!RABBITMQ_BASE!\advanced.config
set SCHEMA_DIR=!RABBITMQ_BASE!\schema
REM PLUGINS_DIR="${RABBITMQ_HOME}/plugins"
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index f8b868c039..f9c0862c87 100755
--- a/scripts/rabbitmq-server
+++ b/scripts/rabbitmq-server
@@ -62,13 +62,85 @@ RABBITMQ_EBIN_ROOT="${RABBITMQ_HOME}/ebin"
[ "$NOTIFY_SOCKET" ] && RUNNING_UNDER_SYSTEMD=true
-set +e
+if [ ! -d ${RABBITMQ_SCHEMA_DIR} ]; then
+ mkdir -p "${RABBITMQ_SCHEMA_DIR}"
+fi
+
+if [ ! -d ${RABBITMQ_GENERATED_CONFIG_DIR} ]; then
+ mkdir -p "${RABBITMQ_GENERATED_CONFIG_DIR}"
+fi
+if [ ! -f "${RABBITMQ_SCHEMA_DIR}/rabbit.schema" ]; then
+ cp "${RABBITMQ_HOME}/priv/schema/rabbit.schema" "${RABBITMQ_SCHEMA_DIR}"
+fi
+
+# Check that advanced config file has the .config extension
+# Add .config extension if it's empty
RABBITMQ_ADVANCED_CONFIG_FILE_NOEX="${RABBITMQ_ADVANCED_CONFIG_FILE%.*}"
-if [ "${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" ]; then
- RABBITMQ_ADVANCED_CONFIG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}"
+if [ "${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" \
+ -o "${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" ]; then
+ echo "Valid advanced config extension"
+ RABBITMQ_ADVANCED_CONFIG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}.config"
+else
+ echo "Warning: wrong extension for advanced config: ${RABBITMQ_ADVANCED_CONFIG_FILE}"
+ exit 1
+fi
+
+
+RABBITMQ_CONFIG_FILE_NOEX="${RABBITMQ_CONFIG_FILE%.*}"
+
+# Extension is not specified.
+# Determine config type from file
+
+if [ "${RABBITMQ_CONFIG_FILE_NOEX}" = "${RABBITMQ_CONFIG_FILE}" ]; then
+ if [ -f "${RABBITMQ_CONFIG_FILE_NOEX}.config" ]; then
+ if [ -f "${RABBITMQ_CONFIG_FILE_NOEX}.conf" ]; then
+ # Both files exist. Print a warning
+ echo "WARNING: Both old (.config) and new (.conf) format config files exist."
+ echo "WARNING: Using the old format config file: ${RABBITMQ_CONFIG_FILE_NOEX}.config"
+ echo "WARNING: Please update your config files to the new format and remove the old file"
+ fi
+ RABBITMQ_CONFIG_FILE="${RABBITMQ_CONFIG_FILE_NOEX}.config"
+ elif [ -f "${RABBITMQ_CONFIG_FILE_NOEX}.conf" ]; then
+ RABBITMQ_CONFIG_FILE="${RABBITMQ_CONFIG_FILE_NOEX}.conf"
+ else
+ echo "WARNING: Config file without extension does not exist"
+ echo "WARNING: Assuming the new config format is used"
+ # No config file exist. Use advanced config for -config arg.
+ RABBITMQ_CONFIG_ARG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE}"
+ fi
+fi
+
+# Set the -config argument.
+# The -config argument should not have extension.
+# the file should exist
+# the file should be a valid erlang term file
+
+# Config file extension is .config
+if [ "${RABBITMQ_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_CONFIG_FILE}" ]; then
+ RABBITMQ_CONFIG_ARG_FILE="${RABBITMQ_CONFIG_FILE}"
+# Config file extension is .conf
+elif [ "${RABBITMQ_CONFIG_FILE_NOEX}.conf" = "${RABBITMQ_CONFIG_FILE}" ]; then
+ RABBITMQ_CONFIG_ARG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE}"
+fi
+
+# Set -config if the file exists
+if [ -f "${RABBITMQ_CONFIG_ARG_FILE}" ]; then
+ RABBITMQ_CONFIG_ARG_FILE_NOEX="${RABBITMQ_CONFIG_ARG_FILE%.*}"
+ RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_ARG_FILE_NOEX}"
+fi
+
+# Set -conf and other generated config parameters
+if [ "${RABBITMQ_CONFIG_FILE_NOEX}.conf" = "${RABBITMQ_CONFIG_FILE}" ]; then
+ RABBITMQ_GENERATED_CONFIG_ARG="-conf ${RABBITMQ_CONFIG_FILE} \
+ -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \
+ -conf_script_dir `dirname $0` \
+ -conf_schema_dir ${RABBITMQ_SCHEMA_DIR}
+ -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE}"
fi
+set +e
+
# `net_kernel:start/1` will fail in `longnames` mode when erlang is
# unable to determine FQDN of a node (with a dot in it). But `erl`
# itself has some magic that still allow it to start when you
@@ -80,6 +152,10 @@ fi
# enough.
RABBITMQ_PRELAUNCH_NODENAME="rabbitmqprelaunch${$}@localhost"
+
+
+RABBITMQ_CONIG_ARGUMENT_FILE=
+
# NOTIFY_SOCKET is needed here to prevent epmd from impersonating the
# success of our startup sequence to systemd.
NOTIFY_SOCKET= \
@@ -108,18 +184,6 @@ else
exit ${PRELAUNCH_RESULT}
fi
-if [ ! -d ${RABBITMQ_SCHEMA_DIR} ]; then
- mkdir -p "${RABBITMQ_SCHEMA_DIR}"
-fi
-
-if [ ! -d ${RABBITMQ_GENERATED_CONFIG_DIR} ]; then
- mkdir -p "${RABBITMQ_GENERATED_CONFIG_DIR}"
-fi
-
-if [ ! -f "${RABBITMQ_SCHEMA_DIR}/rabbit.schema" ]; then
- cp "${RABBITMQ_HOME}/priv/schema/rabbit.schema" "${RABBITMQ_SCHEMA_DIR}"
-fi
-
# The default allocation strategy RabbitMQ is using was introduced
# in Erlang/OTP 20.2.3. Earlier Erlang versions fail to start with
# this configuration. We therefore need to ensure that erl accepts
@@ -141,38 +205,6 @@ fi
set -e
-RABBITMQ_CONFIG_FILE_NOEX="${RABBITMQ_CONFIG_FILE%.*}"
-
-if [ "${RABBITMQ_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_CONFIG_FILE}" ]; then
- if [ -f "${RABBITMQ_CONFIG_FILE}" ]; then
- RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_FILE_NOEX}"
- fi
-elif [ "${RABBITMQ_CONFIG_FILE_NOEX}.conf" = "${RABBITMQ_CONFIG_FILE}" ]; then
- RABBITMQ_CONFIG_ARG="-conf ${RABBITMQ_CONFIG_FILE_NOEX} \
- -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \
- -conf_script_dir `dirname $0` \
- -conf_schema_dir ${RABBITMQ_SCHEMA_DIR}"
- if [ -f "${RABBITMQ_ADVANCED_CONFIG_FILE}.config" ]; then
- RABBITMQ_CONFIG_ARG="${RABBITMQ_CONFIG_ARG} \
- -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE} \
- -config ${RABBITMQ_ADVANCED_CONFIG_FILE}"
- fi
-else
- 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_script_dir `dirname $0` \
- -conf_schema_dir ${RABBITMQ_SCHEMA_DIR}"
- if [ -f "${RABBITMQ_ADVANCED_CONFIG_FILE}.config" ]; then
- RABBITMQ_CONFIG_ARG="${RABBITMQ_CONFIG_ARG} \
- -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE} \
- -config ${RABBITMQ_ADVANCED_CONFIG_FILE}"
- fi
- fi
-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}"}]"
@@ -225,11 +257,13 @@ start_rabbitmq_server() {
ERL_MAX_ETS_TABLES=$ERL_MAX_ETS_TABLES \
ERL_CRASH_DUMP=$ERL_CRASH_DUMP \
exec ${ERL_DIR}erl \
+ -init_debug \
-pa ${RABBITMQ_SERVER_CODE_PATH} ${RABBITMQ_EBIN_ROOT} \
${RABBITMQ_START_RABBIT} \
${RABBITMQ_NAME_TYPE} ${RABBITMQ_NODENAME} \
-boot "${SASL_BOOT_FILE}" \
${RABBITMQ_CONFIG_ARG} \
+ ${RABBITMQ_GENERATED_CONFIG_ARG} \
+W w \
+A ${RABBITMQ_IO_THREAD_POOL_SIZE} \
${RABBITMQ_DEFAULT_ALLOC_ARGS} \
diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat
index f6a61842fd..bec5441947 100644
--- a/scripts/rabbitmq-server.bat
+++ b/scripts/rabbitmq-server.bat
@@ -48,9 +48,79 @@ if not exist "!ERLANG_HOME!\bin\erl.exe" (
set RABBITMQ_EBIN_ROOT=!RABBITMQ_HOME!\ebin
+if not exist "!RABBITMQ_SCHEMA_DIR!" (
+ mkdir "!RABBITMQ_SCHEMA_DIR!"
+)
+
+if not exist "!RABBITMQ_GENERATED_CONFIG_DIR!" (
+ mkdir "!RABBITMQ_GENERATED_CONFIG_DIR!"
+)
+
+if not exist "!RABBITMQ_SCHEMA_DIR!\rabbit.schema" (
+ copy "!RABBITMQ_HOME!\priv\schema\rabbit.schema" "!RABBITMQ_SCHEMA_DIR!\rabbit.schema"
+)
+
CALL :get_noex !RABBITMQ_ADVANCED_CONFIG_FILE! RABBITMQ_ADVANCED_CONFIG_FILE_NOEX
-if "!RABBITMQ_ADVANCED_CONFIG_FILE!" == "!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!.config" (
- set RABBITMQ_ADVANCED_CONFIG_FILE=!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!
+
+if "!RABBITMQ_ADVANCED_CONFIG_FILE!" == "!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!" (
+ set RABBITMQ_ADVANCED_CONFIG_FILE=!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!.config
+) else if not "!RABBITMQ_ADVANCED_CONFIG_FILE!" == "!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!.config" (
+ echo "Warning: wrong extension for advanced config: !RABBITMQ_ADVANCED_CONFIG_FILE!"
+ exit /B 1
+)
+
+REM Try to create advanced config file, if it doesn't exist
+REM It still can fail to be created, but at least not for default install
+if not exist "!RABBITMQ_ADVANCED_CONFIG_FILE!" (
+ echo []. > !RABBITMQ_ADVANCED_CONFIG_FILE!
+)
+
+CALL :get_noex !RABBITMQ_CONFIG_FILE! RABBITMQ_CONFIG_FILE_NOEX
+
+if "!RABBITMQ_CONFIG_FILE!" == "!RABBITMQ_CONFIG_FILE_NOEX!" (
+ if exist "!RABBITMQ_CONFIG_FILE_NOEX!.config" (
+ if exist "!RABBITMQ_CONFIG_FILE_NOEX!.conf" (
+ # Both files exist. Print a warning
+ echo "WARNING: Both old (.config) and new (.conf) format config files exist."
+ echo "WARNING: Using the old format config file: !RABBITMQ_CONFIG_FILE_NOEX!.config"
+ echo "WARNING: Please update your config files to the new format and remove the old file"
+ )
+ set RABBITMQ_CONFIG_FILE=!RABBITMQ_CONFIG_FILE_NOEX!.config
+ ) else if exist "!RABBITMQ_CONFIG_FILE_NOEX!.conf" (
+ set RABBITMQ_CONFIG_FILE=!RABBITMQ_CONFIG_FILE_NOEX!.conf
+ ) else (
+ echo "WARNING: Config file without extension does not exist"
+ echo "WARNING: Assuming the new config format is used"
+ rem No config file exist. Use advanced config for -config arg.
+ set RABBITMQ_CONFIG_ARG_FILE="!RABBITMQ_ADVANCED_CONFIG_FILE!"
+ )
+)
+
+rem Set the -config argument.
+rem The -config argument should not have extension.
+rem the file should exist
+rem the file should be a valid erlang term file
+
+rem Config file extension is .config
+if "!RABBITMQ_CONFIG_FILE_NOEX!.config" == "!RABBITMQ_CONFIG_FILE" (
+ set RABBITMQ_CONFIG_ARG_FILE=!RABBITMQ_CONFIG_FILE!
+) else if "!RABBITMQ_CONFIG_FILE_NOEX!.conf" == "!RABBITMQ_CONFIG_FILE" (
+ set RABBITMQ_CONFIG_ARG_FILE=!RABBITMQ_ADVANCED_CONFIG_FILE!
+)
+
+rem Set -config if the file exists
+if exist !RABBITMQ_CONFIG_ARG_FILE! (
+ CALL :get_noex !RABBITMQ_CONFIG_ARG_FILE! RABBITMQ_CONFIG_ARG_FILE_NOEX
+ set RABBITMQ_CONFIG_ARG=-config "!RABBITMQ_CONFIG_ARG_FILE_NOEX!"
+)
+
+rem Set -conf and other generated config parameters
+if "!RABBITMQ_CONFIG_FILE_NOEX!.conf" == "!RABBITMQ_CONFIG_FILE" (
+ set RABBITMQ_GENERATED_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE!" ^
+ -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" ^
+ -conf_script_dir !CONF_SCRIPT_DIR:\=/! ^
+ -conf_schema_dir "!RABBITMQ_SCHEMA_DIR!" ^
+ -conf_advanced "!RABBITMQ_ADVANCED_CONFIG_FILE!"
)
"!ERLANG_HOME!\bin\erl.exe" ^
@@ -93,52 +163,8 @@ if ERRORLEVEL 1 (
set RABBITMQ_DEFAULT_ALLOC_ARGS=
)
-if not exist "!RABBITMQ_SCHEMA_DIR!" (
- mkdir "!RABBITMQ_SCHEMA_DIR!"
-)
-
-if not exist "!RABBITMQ_GENERATED_CONFIG_DIR!" (
- mkdir "!RABBITMQ_GENERATED_CONFIG_DIR!"
-)
-
-if not exist "!RABBITMQ_SCHEMA_DIR!\rabbit.schema" (
- copy "!RABBITMQ_HOME!\priv\schema\rabbit.schema" "!RABBITMQ_SCHEMA_DIR!\rabbit.schema"
-)
-
set RABBITMQ_EBIN_PATH="-pa !RABBITMQ_EBIN_ROOT!"
-CALL :get_noex !RABBITMQ_CONFIG_FILE! RABBITMQ_CONFIG_FILE_NOEX
-
-if "!RABBITMQ_CONFIG_FILE!" == "!RABBITMQ_CONFIG_FILE_NOEX!.config" (
- if exist "!RABBITMQ_CONFIG_FILE!" (
- set RABBITMQ_CONFIG_ARG=-config "!RABBITMQ_CONFIG_FILE_NOEX!"
- )
-) else if "!RABBITMQ_CONFIG_FILE!" == "!RABBITMQ_CONFIG_FILE_NOEX!.conf" (
- set RABBITMQ_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE_NOEX!" ^
- -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" ^
- -conf_script_dir !CONF_SCRIPT_DIR:\=/! ^
- -conf_schema_dir "!RABBITMQ_SCHEMA_DIR!"
- if exist "!RABBITMQ_ADVANCED_CONFIG_FILE!.config" (
- set RABBITMQ_CONFIG_ARG=!RABBITMQ_CONFIG_ARG! ^
- -conf_advanced "!RABBITMQ_ADVANCED_CONFIG_FILE!" ^
- -config "!RABBITMQ_ADVANCED_CONFIG_FILE!"
- )
-) else (
- 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_script_dir !CONF_SCRIPT_DIR:\=/! ^
- -conf_schema_dir "!RABBITMQ_SCHEMA_DIR!"
- if exist "!RABBITMQ_ADVANCED_CONFIG_FILE!.config" (
- set RABBITMQ_CONFIG_ARG=!RABBITMQ_CONFIG_ARG! ^
- -conf_advanced "!RABBITMQ_ADVANCED_CONFIG_FILE!" ^
- -config "!RABBITMQ_ADVANCED_CONFIG_FILE!"
- )
- )
-)
-
set RABBITMQ_LISTEN_ARG=
if not "!RABBITMQ_NODE_IP_ADDRESS!"=="" (
if not "!RABBITMQ_NODE_PORT!"=="" (
@@ -191,6 +217,7 @@ if "!ENV_OK!"=="false" (
-boot start_sasl ^
!RABBITMQ_START_RABBIT! ^
!RABBITMQ_CONFIG_ARG! ^
+!RABBITMQ_GENERATED_CONFIG_ARG! ^
!RABBITMQ_NAME_TYPE! !RABBITMQ_NODENAME! ^
+W w ^
+A "!RABBITMQ_IO_THREAD_POOL_SIZE!" ^
diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat
index 0a93462359..1d08d21c73 100644
--- a/scripts/rabbitmq-service.bat
+++ b/scripts/rabbitmq-service.bat
@@ -131,10 +131,79 @@ if errorlevel 1 (
set RABBITMQ_EBIN_ROOT=!RABBITMQ_HOME!\ebin
+if not exist "!RABBITMQ_SCHEMA_DIR!" (
+ mkdir "!RABBITMQ_SCHEMA_DIR!"
+)
+
+if not exist "!RABBITMQ_GENERATED_CONFIG_DIR!" (
+ mkdir "!RABBITMQ_GENERATED_CONFIG_DIR!"
+)
+
+if not exist "!RABBITMQ_SCHEMA_DIR!\rabbit.schema" (
+ copy "!RABBITMQ_HOME!\priv\schema\rabbit.schema" "!RABBITMQ_SCHEMA_DIR!\rabbit.schema"
+)
+
CALL :get_noex !RABBITMQ_ADVANCED_CONFIG_FILE! RABBITMQ_ADVANCED_CONFIG_FILE_NOEX
-if "!RABBITMQ_ADVANCED_CONFIG_FILE!" == "!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!.config" (
- set RABBITMQ_ADVANCED_CONFIG_FILE=!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!
+if "!RABBITMQ_ADVANCED_CONFIG_FILE!" == "!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!" (
+ set RABBITMQ_ADVANCED_CONFIG_FILE=!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!.config
+) else if not "!RABBITMQ_ADVANCED_CONFIG_FILE!" == "!RABBITMQ_ADVANCED_CONFIG_FILE_NOEX!.config" (
+ echo "Warning: wrong extension for advanced config: !RABBITMQ_ADVANCED_CONFIG_FILE!"
+ exit /B 1
+)
+
+REM Try to create advanced config file, if it doesn't exist
+REM It still can fail to be created, but at least not for default install
+if not exist "!RABBITMQ_ADVANCED_CONFIG_FILE!" (
+ echo []. > !RABBITMQ_ADVANCED_CONFIG_FILE!
+)
+
+CALL :get_noex !RABBITMQ_CONFIG_FILE! RABBITMQ_CONFIG_FILE_NOEX
+
+if "!RABBITMQ_CONFIG_FILE!" == "!RABBITMQ_CONFIG_FILE_NOEX!" (
+ if exist "!RABBITMQ_CONFIG_FILE_NOEX!.config" (
+ if exist "!RABBITMQ_CONFIG_FILE_NOEX!.conf" (
+ # Both files exist. Print a warning
+ echo "WARNING: Both old (.config) and new (.conf) format config files exist."
+ echo "WARNING: Using the old format config file: !RABBITMQ_CONFIG_FILE_NOEX!.config"
+ echo "WARNING: Please update your config files to the new format and remove the old file"
+ )
+ set RABBITMQ_CONFIG_FILE=!RABBITMQ_CONFIG_FILE_NOEX!.config
+ ) else if exist "!RABBITMQ_CONFIG_FILE_NOEX!.conf" (
+ set RABBITMQ_CONFIG_FILE=!RABBITMQ_CONFIG_FILE_NOEX!.conf
+ ) else (
+ echo "WARNING: Config file without extension does not exist"
+ echo "WARNING: Assuming the new config format is used"
+ rem No config file exist. Use advanced config for -config arg.
+ set RABBITMQ_CONFIG_ARG_FILE="!RABBITMQ_ADVANCED_CONFIG_FILE!"
+ )
+)
+
+rem Set the -config argument.
+rem The -config argument should not have extension.
+rem the file should exist
+rem the file should be a valid erlang term file
+
+rem Config file extension is .config
+if "!RABBITMQ_CONFIG_FILE_NOEX!.config" == "!RABBITMQ_CONFIG_FILE" (
+ set RABBITMQ_CONFIG_ARG_FILE=!RABBITMQ_CONFIG_FILE!
+) else if "!RABBITMQ_CONFIG_FILE_NOEX!.conf" == "!RABBITMQ_CONFIG_FILE" (
+ set RABBITMQ_CONFIG_ARG_FILE=!RABBITMQ_ADVANCED_CONFIG_FILE!
+)
+
+rem Set -config if the file exists
+if exist !RABBITMQ_CONFIG_ARG_FILE! (
+ CALL :get_noex !RABBITMQ_CONFIG_ARG_FILE! RABBITMQ_CONFIG_ARG_FILE_NOEX
+ set RABBITMQ_CONFIG_ARG=-config "!RABBITMQ_CONFIG_ARG_FILE_NOEX!"
+)
+
+rem Set -conf and other generated config parameters
+if "!RABBITMQ_CONFIG_FILE_NOEX!.conf" == "!RABBITMQ_CONFIG_FILE" (
+ set RABBITMQ_GENERATED_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE!" ^
+ -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" ^
+ -conf_script_dir !CONF_SCRIPT_DIR:\=/! ^
+ -conf_schema_dir "!RABBITMQ_SCHEMA_DIR!" ^
+ -conf_advanced "!RABBITMQ_ADVANCED_CONFIG_FILE!"
)
"!ERLANG_HOME!\bin\erl.exe" ^
@@ -181,57 +250,6 @@ if ERRORLEVEL 1 (
set RABBITMQ_DEFAULT_ALLOC_ARGS=
)
-if not exist "!RABBITMQ_SCHEMA_DIR!" (
- mkdir "!RABBITMQ_SCHEMA_DIR!"
-)
-
-if not exist "!RABBITMQ_GENERATED_CONFIG_DIR!" (
- mkdir "!RABBITMQ_GENERATED_CONFIG_DIR!"
-)
-
-if not exist "!RABBITMQ_SCHEMA_DIR!\rabbit.schema" (
- copy "!RABBITMQ_HOME!\priv\schema\rabbit.schema" "!RABBITMQ_SCHEMA_DIR!\rabbit.schema"
-)
- REM Try to create advanced config file, if it doesn't exist
- REM It still can fail to be created, but at least not for default install
-if not exist "!RABBITMQ_ADVANCED_CONFIG_FILE!.config" (
- echo []. > !RABBITMQ_ADVANCED_CONFIG_FILE!.config
-)
-
-CALL :get_noex !RABBITMQ_CONFIG_FILE! RABBITMQ_CONFIG_FILE_NOEX
-
-if "!RABBITMQ_CONFIG_FILE!" == "!RABBITMQ_CONFIG_FILE_NOEX!.config" (
- if exist "!RABBITMQ_CONFIG_FILE!" (
- set RABBITMQ_CONFIG_ARG=-config "!RABBITMQ_CONFIG_FILE_NOEX!"
- )
-) else if "!RABBITMQ_CONFIG_FILE!" == "!RABBITMQ_CONFIG_FILE_NOEX!.conf" (
- set RABBITMQ_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE_NOEX!" ^
- -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" ^
- -conf_script_dir !CONF_SCRIPT_DIR:\=/! ^
- -conf_schema_dir "!RABBITMQ_SCHEMA_DIR!"
- if exist "!RABBITMQ_ADVANCED_CONFIG_FILE!.config" (
- set RABBITMQ_CONFIG_ARG=!RABBITMQ_CONFIG_ARG! ^
- -conf_advanced "!RABBITMQ_ADVANCED_CONFIG_FILE!" ^
- -config "!RABBITMQ_ADVANCED_CONFIG_FILE!"
- )
-) else (
- if exist "!RABBITMQ_CONFIG_FILE!.config" (
- set RABBITMQ_CONFIG_ARG=-config "!RABBITMQ_CONFIG_FILE!"
- ) else (
- rem Always specify generated config arguments, we cannot
- rem assume .conf file is available
- set RABBITMQ_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE!" ^
- -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" ^
- -conf_script_dir !CONF_SCRIPT_DIR:\=/! ^
- -conf_schema_dir "!RABBITMQ_SCHEMA_DIR!"
- if exist "!RABBITMQ_ADVANCED_CONFIG_FILE!.config" (
- set RABBITMQ_CONFIG_ARG=!RABBITMQ_CONFIG_ARG! ^
- -conf_advanced "!RABBITMQ_ADVANCED_CONFIG_FILE!" ^
- -config "!RABBITMQ_ADVANCED_CONFIG_FILE!"
- )
- )
-)
-
set RABBITMQ_LISTEN_ARG=
if not "!RABBITMQ_NODE_IP_ADDRESS!"=="" (
@@ -273,6 +291,7 @@ set ERLANG_SERVICE_ARGUMENTS= ^
-boot start_sasl ^
!RABBITMQ_START_RABBIT! ^
!RABBITMQ_CONFIG_ARG! ^
+!RABBITMQ_GENERATED_CONFIG_ARG! ^
+W w ^
+A "!RABBITMQ_IO_THREAD_POOL_SIZE!" ^
!RABBITMQ_DEFAULT_ALLOC_ARGS! ^