summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorLuke Bakken <lbakken@pivotal.io>2017-12-29 13:56:23 -0800
committerLuke Bakken <lbakken@pivotal.io>2017-12-29 13:56:23 -0800
commitf2960e4452b75cda5763d7b33ffb4013c04f815d (patch)
treece1452c3b70916b031f68f72b41e6ed63e8ed365 /scripts
parent9b82020e2cf4b081311bcbfe6ac06ac37547d00d (diff)
downloadrabbitmq-server-git-f2960e4452b75cda5763d7b33ffb4013c04f815d.tar.gz
Run escript and use RABBITMQ_CTL_ERL_ARGS env variable
Fixes #1461
Diffstat (limited to 'scripts')
-rw-r--r--scripts/rabbitmq-defaults.bat4
-rwxr-xr-xscripts/rabbitmq-diagnostics2
-rw-r--r--scripts/rabbitmq-diagnostics.bat21
-rwxr-xr-xscripts/rabbitmq-env19
-rwxr-xr-xscripts/rabbitmq-plugins2
-rw-r--r--scripts/rabbitmq-plugins.bat21
-rwxr-xr-xscripts/rabbitmqctl2
-rw-r--r--scripts/rabbitmqctl.bat21
8 files changed, 54 insertions, 38 deletions
diff --git a/scripts/rabbitmq-defaults.bat b/scripts/rabbitmq-defaults.bat
index 0246dc64fd..4fb09d0499 100644
--- a/scripts/rabbitmq-defaults.bat
+++ b/scripts/rabbitmq-defaults.bat
@@ -7,9 +7,9 @@ REM ### next line will be updated when generating a standalone release
REM ERL_DIR=
set ERL_DIR=
-REM These boot files don't appear to be referenced in the batch scripts
-REM set CLEAN_BOOT_FILE=start_clean
+REM This boot files isn't referenced in the batch scripts
REM set SASL_BOOT_FILE=start_sasl
+set CLEAN_BOOT_FILE=start_clean
if exist "%RABBITMQ_HOME%\erlang.mk" (
REM RabbitMQ is executed from its source directory. The plugins
diff --git a/scripts/rabbitmq-diagnostics b/scripts/rabbitmq-diagnostics
index 5f6669580c..6366dff08d 100755
--- a/scripts/rabbitmq-diagnostics
+++ b/scripts/rabbitmq-diagnostics
@@ -29,4 +29,4 @@ set -a
# shellcheck source=./rabbitmq-env
. "${0%/*}"/rabbitmq-env
-exec "${ERL_DIR}escript" "${ESCRIPT_DIR:?must be defined}"/rabbitmq-diagnostics "$@"
+run_escript rabbitmqctl_escript "${ESCRIPT_DIR:?must be defined}"/rabbitmq-diagnostics "$@"
diff --git a/scripts/rabbitmq-diagnostics.bat b/scripts/rabbitmq-diagnostics.bat
index e2032ad048..58b6c69e4f 100644
--- a/scripts/rabbitmq-diagnostics.bat
+++ b/scripts/rabbitmq-diagnostics.bat
@@ -45,17 +45,16 @@ if not defined ERL_CRASH_DUMP_SECONDS (
set ERL_CRASH_DUMP_SECONDS=0
)
-"!ERLANG_HOME!\bin\escript.exe" ^
-"%RABBITMQ_HOME%\escript\rabbitmq-diagnostics" !STAR!
-rem -pa "!RABBITMQ_HOME!\ebin" ^
-rem -noinput ^
-rem -hidden ^
-rem !RABBITMQ_CTL_ERL_ARGS! ^
-rem -sasl errlog_type error ^
-rem -mnesia dir \""!RABBITMQ_MNESIA_DIR:\=/!"\" ^
-rem -s rabbit_control_main ^
-rem -nodename !RABBITMQ_NODENAME! ^
-rem -extra !STAR!
+"!ERLANG_HOME!\bin\erl.exe" +B ^
+-boot !CLEAN_BOOT_FILE! ^
+-noinput -noshell -hidden -smp enable ^
+!RABBITMQ_CTL_ERL_ARGS! ^
+-sasl errlog_type error ^
+-mnesia dir \""!RABBITMQ_MNESIA_DIR:\=/!"\" ^
+-nodename !RABBITMQ_NODENAME! ^
+-run escript start ^
+-escript main rabbitmqctl_escript ^
+-extra "%RABBITMQ_HOME%\escript\rabbitmq-diagnostics" !STAR!
endlocal
endlocal
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env
index 2efe67bd34..1fb6e76da1 100755
--- a/scripts/rabbitmq-env
+++ b/scripts/rabbitmq-env
@@ -332,6 +332,25 @@ if [ "$ERL_LIBS" ]; then
export ERL_LIBS
fi
+run_escript()
+{
+ escript_main="${1:?escript_main must be defined}"
+ shift
+ escript="${1:?escript must be defined}"
+ shift
+
+ exec "${ERL_DIR}erl" +B \
+ -boot "${CLEAN_BOOT_FILE}" \
+ -noinput -noshell -hidden -smp enable \
+ "${RABBITMQ_CTL_ERL_ARGS}" \
+ -sasl errlog_type error \
+ -mnesia dir "\"${RABBITMQ_MNESIA_DIR}\"" \
+ -nodename "$RABBITMQ_NODENAME" \
+ -run escript start \
+ -escript main "$escript_main" \
+ -extra "$escript" "$@"
+}
+
RABBITMQ_ENV_LOADED=1
# Since we source this elsewhere, don't accidentally stop execution
diff --git a/scripts/rabbitmq-plugins b/scripts/rabbitmq-plugins
index 7635da9929..891b96e924 100755
--- a/scripts/rabbitmq-plugins
+++ b/scripts/rabbitmq-plugins
@@ -29,4 +29,4 @@ set -a
# shellcheck source=./rabbitmq-env
. "${0%/*}"/rabbitmq-env
-exec "${ERL_DIR}escript" "${ESCRIPT_DIR:?must be defined}"/rabbitmq-plugins --formatter=plugins -q "$@"
+run_escript rabbitmqctl_escript "${ESCRIPT_DIR:?must be defined}"/rabbitmq-plugins --formatter=plugins -q "$@"
diff --git a/scripts/rabbitmq-plugins.bat b/scripts/rabbitmq-plugins.bat
index 3cd8a7273a..443201e2f0 100644
--- a/scripts/rabbitmq-plugins.bat
+++ b/scripts/rabbitmq-plugins.bat
@@ -45,17 +45,16 @@ if not defined ERL_CRASH_DUMP_SECONDS (
set ERL_CRASH_DUMP_SECONDS=0
)
-"!ERLANG_HOME!\bin\escript.exe" ^
-"%RABBITMQ_HOME%\escript\rabbitmq-plugins" --formatter=plugins !STAR!
-rem -pa "!RABBITMQ_HOME!\ebin" ^
-rem -noinput ^
-rem -hidden ^
-rem !RABBITMQ_CTL_ERL_ARGS! ^
-rem -s rabbit_plugins_main ^
-rem -enabled_plugins_file "!RABBITMQ_ENABLED_PLUGINS_FILE!" ^
-rem -plugins_dist_dir "!RABBITMQ_PLUGINS_DIR:\=/!" ^
-rem -nodename !RABBITMQ_NODENAME! ^
-rem -extra !STAR!
+"!ERLANG_HOME!\bin\erl.exe" +B ^
+-boot !CLEAN_BOOT_FILE! ^
+-noinput -noshell -hidden -smp enable ^
+!RABBITMQ_CTL_ERL_ARGS! ^
+-sasl errlog_type error ^
+-mnesia dir \""!RABBITMQ_MNESIA_DIR:\=/!"\" ^
+-nodename !RABBITMQ_NODENAME! ^
+-run escript start ^
+-escript main rabbitmqctl_escript ^
+-extra "%RABBITMQ_HOME%\escript\rabbitmq-plugins" --formatter=plugins !STAR!
endlocal
endlocal
diff --git a/scripts/rabbitmqctl b/scripts/rabbitmqctl
index 9624591af0..86092bec5c 100755
--- a/scripts/rabbitmqctl
+++ b/scripts/rabbitmqctl
@@ -29,4 +29,4 @@ set -a
# shellcheck source=./rabbitmq-env
. "${0%/*}"/rabbitmq-env
-exec "${ERL_DIR}escript" "${ESCRIPT_DIR:?must be defined}"/rabbitmqctl "$@"
+run_escript rabbitmqctl_escript "${ESCRIPT_DIR:?must be defined}"/rabbitmqctl "$@"
diff --git a/scripts/rabbitmqctl.bat b/scripts/rabbitmqctl.bat
index 01e10195d2..4980900f72 100644
--- a/scripts/rabbitmqctl.bat
+++ b/scripts/rabbitmqctl.bat
@@ -45,17 +45,16 @@ if not defined ERL_CRASH_DUMP_SECONDS (
set ERL_CRASH_DUMP_SECONDS=0
)
-"!ERLANG_HOME!\bin\escript.exe" ^
-"%RABBITMQ_HOME%\escript\rabbitmqctl" !STAR!
-rem -pa "!RABBITMQ_HOME!\ebin" ^
-rem -noinput ^
-rem -hidden ^
-rem !RABBITMQ_CTL_ERL_ARGS! ^
-rem -sasl errlog_type error ^
-rem -mnesia dir \""!RABBITMQ_MNESIA_DIR:\=/!"\" ^
-rem -s rabbit_control_main ^
-rem -nodename !RABBITMQ_NODENAME! ^
-rem -extra !STAR!
+"!ERLANG_HOME!\bin\erl.exe" +B ^
+-boot !CLEAN_BOOT_FILE! ^
+-noinput -noshell -hidden -smp enable ^
+!RABBITMQ_CTL_ERL_ARGS! ^
+-sasl errlog_type error ^
+-mnesia dir \""!RABBITMQ_MNESIA_DIR:\=/!"\" ^
+-nodename !RABBITMQ_NODENAME! ^
+-run escript start ^
+-escript main rabbitmqctl_escript ^
+-extra "%RABBITMQ_HOME%\escript\rabbitmqctl" !STAR!
endlocal
endlocal