summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2016-11-08 19:08:23 +0100
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2016-11-08 19:08:23 +0100
commitdb3515ba7855dae6fdce4e6fc622fc9e1bdda75a (patch)
tree0adb97891cbdd02b180fdebf1da33ee25bdb4946
parentfa8784fe7c343992cc3591b0d0353e560d252067 (diff)
parent81e2170a6c6f4d4835e7731a9d251f5eadd060ce (diff)
downloadrabbitmq-server-git-db3515ba7855dae6fdce4e6fc622fc9e1bdda75a.tar.gz
Merge branch 'rabbitmq-cli-integration'
-rw-r--r--.gitignore2
-rw-r--r--Makefile16
-rwxr-xr-xscripts/rabbitmq-diagnostics7
-rw-r--r--scripts/rabbitmq-diagnostics.bat61
-rwxr-xr-xscripts/rabbitmq-env6
-rwxr-xr-xscripts/rabbitmq-plugins39
-rw-r--r--scripts/rabbitmq-plugins.bat21
-rwxr-xr-xscripts/rabbitmqctl42
-rw-r--r--scripts/rabbitmqctl.bat21
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.
diff --git a/Makefile b/Makefile
index 588b7149f7..b62bc9c116 100644
--- a/Makefile
+++ b/Makefile
@@ -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