diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | Makefile | 16 | ||||
| -rwxr-xr-x | scripts/rabbitmq-diagnostics | 7 | ||||
| -rw-r--r-- | scripts/rabbitmq-diagnostics.bat | 61 | ||||
| -rwxr-xr-x | scripts/rabbitmq-env | 6 | ||||
| -rwxr-xr-x | scripts/rabbitmq-plugins | 39 | ||||
| -rw-r--r-- | scripts/rabbitmq-plugins.bat | 21 | ||||
| -rwxr-xr-x | scripts/rabbitmqctl | 42 | ||||
| -rw-r--r-- | scripts/rabbitmqctl.bat | 21 |
9 files changed, 116 insertions, 99 deletions
diff --git a/.gitignore b/.gitignore index 7af1ad4260..f7a1da4397 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,7 @@ /test/ct.cover.spec /test/config_schema_SUITE_data/schema/** /xrefr - +/escript rabbit.d # Generated sources files. @@ -1,9 +1,11 @@ PROJECT = rabbit VERSION ?= $(call get_app_version,src/$(PROJECT).app.src) -DEPS = ranch lager rabbit_common +DEPS = ranch lager rabbit_common rabbitmq_cli TEST_DEPS = rabbitmq_ct_helpers amqp_client meck proper +dep_rabbitmq_cli = git_rmq rabbitmq-cli $(current_rmq_ref) $(base_rmq_ref) rabbitmq-cli-integration + define usage_xml_to_erl $(subst __,_,$(patsubst $(DOCS_DIR)/rabbitmq%.1.xml, src/rabbit_%_usage.erl, $(subst -,_,$(1)))) endef @@ -19,6 +21,13 @@ EXTRA_SOURCES += $(USAGES_ERL) .DEFAULT_GOAL = all $(PROJECT).d:: $(EXTRA_SOURCES) +rel:: + $(MAKE) copy-escripts + +copy-escripts: deps + cp -r ${DEPS_DIR}/rabbitmq_cli/escript ./ + + DEP_PLUGINS = rabbit_common/mk/rabbitmq-build.mk \ rabbit_common/mk/rabbitmq-run.mk \ rabbit_common/mk/rabbitmq-dist.mk \ @@ -56,11 +65,14 @@ USE_PROPER_QC := $(shell $(ERL) -eval 'io:format({module, proper} =:= code:ensur RMQ_ERLC_OPTS += $(if $(filter true,$(USE_PROPER_QC)),-Duse_proper_qc) endif -clean:: clean-extra-sources +clean:: clean-extra-sources clean-escripts clean-extra-sources: $(gen_verbose) rm -f $(EXTRA_SOURCES) +clean-escripts: + $(gen_verbose) rm -rf escript + # -------------------------------------------------------------------- # Documentation. # -------------------------------------------------------------------- diff --git a/scripts/rabbitmq-diagnostics b/scripts/rabbitmq-diagnostics new file mode 100755 index 0000000000..40e9ec0177 --- /dev/null +++ b/scripts/rabbitmq-diagnostics @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -a + +. `dirname $0`/rabbitmq-env + +escript $ESCRIPT_DIR/rabbitmq-diagnostics "$@"
\ No newline at end of file diff --git a/scripts/rabbitmq-diagnostics.bat b/scripts/rabbitmq-diagnostics.bat new file mode 100644 index 0000000000..e2032ad048 --- /dev/null +++ b/scripts/rabbitmq-diagnostics.bat @@ -0,0 +1,61 @@ +@echo off
+REM The contents of this file are subject to the Mozilla Public License
+REM Version 1.1 (the "License"); you may not use this file except in
+REM compliance with the License. You may obtain a copy of the License
+REM at http://www.mozilla.org/MPL/
+REM
+REM Software distributed under the License is distributed on an "AS IS"
+REM basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+REM the License for the specific language governing rights and
+REM limitations under the License.
+REM
+REM The Original Code is RabbitMQ.
+REM
+REM The Initial Developer of the Original Code is GoPivotal, Inc.
+REM Copyright (c) 2007-2015 Pivotal Software, Inc. All rights reserved.
+REM
+
+REM Scopes the variables to the current batch file
+setlocal
+
+rem Preserve values that might contain exclamation marks before
+rem enabling delayed expansion
+set TDP0=%~dp0
+set STAR=%*
+setlocal enabledelayedexpansion
+
+REM Get default settings with user overrides for (RABBITMQ_)<var_name>
+REM Non-empty defaults should be set in rabbitmq-env
+call "%TDP0%\rabbitmq-env.bat" %~n0
+
+if not exist "!ERLANG_HOME!\bin\erl.exe" (
+ echo.
+ echo ******************************
+ echo ERLANG_HOME not set correctly.
+ echo ******************************
+ echo.
+ echo Please either set ERLANG_HOME to point to your Erlang installation or place the
+ echo RabbitMQ server distribution in the Erlang lib folder.
+ echo.
+ exit /B 1
+)
+
+REM Disable erl_crash.dump by default for control scripts.
+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!
+
+endlocal
+endlocal
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env index 206bdd0c20..f1962e2b7b 100755 --- a/scripts/rabbitmq-env +++ b/scripts/rabbitmq-env @@ -58,6 +58,7 @@ rmq_realpath() { } RABBITMQ_HOME="$(rmq_realpath "${RABBITMQ_SCRIPTS_DIR}/..")" +ESCRIPT_DIR="${RABBITMQ_HOME}/escript" ## Set defaults . ${RABBITMQ_SCRIPTS_DIR}/rabbitmq-defaults @@ -244,9 +245,8 @@ rmq_check_if_shared_with_mnesia \ ## Development-specific environment. if [ "${RABBITMQ_DEV_ENV}" ]; then - if [ "$(basename "$0")" = 'rabbitmq-plugins' -a \( \ - "$RABBITMQ_PLUGINS_DIR_source" != 'environment' -o \ - "$RABBITMQ_ENABLED_PLUGINS_FILE_source" != 'environment' \) ]; then + if [ "$RABBITMQ_PLUGINS_DIR_source" != 'environment' -o \ + "$RABBITMQ_ENABLED_PLUGINS_FILE_source" != 'environment' ]; then # We need to query the running node for the plugins directory # and the "enabled plugins" file. eval $( (${RABBITMQ_SCRIPTS_DIR}/rabbitmqctl eval \ diff --git a/scripts/rabbitmq-plugins b/scripts/rabbitmq-plugins index d72df8ad86..c9b6408ea0 100755 --- a/scripts/rabbitmq-plugins +++ b/scripts/rabbitmq-plugins @@ -1,38 +1,7 @@ -#!/bin/sh -e -## The contents of this file are subject to the Mozilla Public License -## Version 1.1 (the "License"); you may not use this file except in -## compliance with the License. You may obtain a copy of the License -## at http://www.mozilla.org/MPL/ -## -## Software distributed under the License is distributed on an "AS IS" -## basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -## the License for the specific language governing rights and -## limitations under the License. -## -## The Original Code is RabbitMQ. -## -## The Initial Developer of the Original Code is GoPivotal, Inc. -## Copyright (c) 2007-2015 Pivotal Software, Inc. All rights reserved. -## +#!/usr/bin/env bash -# Get default settings with user overrides for (RABBITMQ_)<var_name> -# Non-empty defaults should be set in rabbitmq-env -. `dirname $0`/rabbitmq-env +set -a -# Disable erl_crash.dump by default for control scripts. -if [ -z "$ERL_CRASH_DUMP_SECONDS" ]; then - export ERL_CRASH_DUMP_SECONDS=0 -fi +. `dirname $0`/rabbitmq-env -RABBITMQ_USE_LONGNAME=${RABBITMQ_USE_LONGNAME} \ -exec ${ERL_DIR}erl \ - -pa "${RABBITMQ_HOME}/ebin" \ - -noinput \ - -hidden \ - ${RABBITMQ_CTL_ERL_ARGS} \ - -boot "${CLEAN_BOOT_FILE}" \ - -s rabbit_plugins_main \ - -enabled_plugins_file "$RABBITMQ_ENABLED_PLUGINS_FILE" \ - -plugins_dist_dir "$RABBITMQ_PLUGINS_DIR" \ - -nodename $RABBITMQ_NODENAME \ - -extra "$@" +escript $ESCRIPT_DIR/rabbitmq-plugins --formatter=plugins -q "$@"
\ No newline at end of file diff --git a/scripts/rabbitmq-plugins.bat b/scripts/rabbitmq-plugins.bat index c270d5d945..3cd8a7273a 100644 --- a/scripts/rabbitmq-plugins.bat +++ b/scripts/rabbitmq-plugins.bat @@ -45,16 +45,17 @@ if not defined ERL_CRASH_DUMP_SECONDS ( set ERL_CRASH_DUMP_SECONDS=0
)
-"!ERLANG_HOME!\bin\erl.exe" ^
--pa "!RABBITMQ_HOME!\ebin" ^
--noinput ^
--hidden ^
-!RABBITMQ_CTL_ERL_ARGS! ^
--s rabbit_plugins_main ^
--enabled_plugins_file "!RABBITMQ_ENABLED_PLUGINS_FILE!" ^
--plugins_dist_dir "!RABBITMQ_PLUGINS_DIR:\=/!" ^
--nodename !RABBITMQ_NODENAME! ^
--extra !STAR!
+"!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!
endlocal
endlocal
diff --git a/scripts/rabbitmqctl b/scripts/rabbitmqctl index 2336c3d466..048062b00d 100755 --- a/scripts/rabbitmqctl +++ b/scripts/rabbitmqctl @@ -1,41 +1,7 @@ -#!/bin/sh -e -## The contents of this file are subject to the Mozilla Public License -## Version 1.1 (the "License"); you may not use this file except in -## compliance with the License. You may obtain a copy of the License -## at http://www.mozilla.org/MPL/ -## -## Software distributed under the License is distributed on an "AS IS" -## basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -## the License for the specific language governing rights and -## limitations under the License. -## -## The Original Code is RabbitMQ. -## -## The Initial Developer of the Original Code is GoPivotal, Inc. -## Copyright (c) 2007-2015 Pivotal Software, Inc. All rights reserved. -## +#!/usr/bin/env bash -# Get default settings with user overrides for (RABBITMQ_)<var_name> -# Non-empty defaults should be set in rabbitmq-env -. `dirname $0`/rabbitmq-env +set -a -# Disable erl_crash.dump by default for control scripts. -if [ -z "$ERL_CRASH_DUMP_SECONDS" ]; then - export ERL_CRASH_DUMP_SECONDS=0 -fi +. `dirname $0`/rabbitmq-env -# We specify Mnesia dir and sasl error logger since some actions -# (e.g. forget_cluster_node --offline) require us to impersonate the -# real node. -RABBITMQ_USE_LONGNAME=${RABBITMQ_USE_LONGNAME} \ -exec ${ERL_DIR}erl \ - -pa "${RABBITMQ_HOME}/ebin" \ - -noinput +B \ - -hidden \ - ${RABBITMQ_CTL_ERL_ARGS} \ - -boot "${CLEAN_BOOT_FILE}" \ - -sasl errlog_type error \ - -mnesia dir "\"${RABBITMQ_MNESIA_DIR}\"" \ - -s rabbit_control_main \ - -nodename $RABBITMQ_NODENAME \ - -extra "$@" +escript $ESCRIPT_DIR/rabbitmqctl "$@" diff --git a/scripts/rabbitmqctl.bat b/scripts/rabbitmqctl.bat index 56e856fb43..01e10195d2 100644 --- a/scripts/rabbitmqctl.bat +++ b/scripts/rabbitmqctl.bat @@ -45,16 +45,17 @@ if not defined ERL_CRASH_DUMP_SECONDS ( set ERL_CRASH_DUMP_SECONDS=0
)
-"!ERLANG_HOME!\bin\erl.exe" ^
--pa "!RABBITMQ_HOME!\ebin" ^
--noinput ^
--hidden ^
-!RABBITMQ_CTL_ERL_ARGS! ^
--sasl errlog_type error ^
--mnesia dir \""!RABBITMQ_MNESIA_DIR:\=/!"\" ^
--s rabbit_control_main ^
--nodename !RABBITMQ_NODENAME! ^
--extra !STAR!
+"!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!
endlocal
endlocal
|
