summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Powell <steve@rabbitmq.com>2012-02-03 15:34:38 +0000
committerSteve Powell <steve@rabbitmq.com>2012-02-03 15:34:38 +0000
commitbde5f08b59a14856227d9a2bffb6dbf01ca6249d (patch)
tree35c47511cf0fbd653e983bd79f1e8651201b9f3d
parente63f34ead24e91834542f12114473d0a00d60f5d (diff)
downloadrabbitmq-server-bug24721.tar.gz
Defaults all centralised and isolated.bug24721
-rwxr-xr-xscripts/rabbitmq-env56
-rwxr-xr-xscripts/rabbitmq-plugins9
-rwxr-xr-xscripts/rabbitmq-server40
-rw-r--r--scripts/rabbitmq-sys9
-rwxr-xr-xscripts/rabbitmqctl9
5 files changed, 59 insertions, 64 deletions
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env
index dd7abd34..92c3b938 100755
--- a/scripts/rabbitmq-env
+++ b/scripts/rabbitmq-env
@@ -43,12 +43,60 @@ if [ ! -f ${SCRIPT_DIR}/rabbitmq-sys ]; then
exit 1
fi
-. ${SCRIPT_DIR}/rabbitmq-sys
-
-## Get configuration variables from the rabbitmq-env.conf file
+## Get configuration variables from the rabbitmq-env.conf file and rabbitmq-sys
if [ -f /etc/rabbitmq/rabbitmq.conf ] && \
[ ! -f /etc/rabbitmq/rabbitmq-env.conf ] ; then
echo -n "WARNING: ignoring /etc/rabbitmq/rabbitmq.conf -- "
echo "location has moved to /etc/rabbitmq/rabbitmq-env.conf"
fi
-[ -f /etc/rabbitmq/rabbitmq-env.conf ] && . /etc/rabbitmq/rabbitmq-env.conf
+
+if [ -f /etc/rabbitmq/rabbitmq-env.conf ] ; then
+ RABBITMQ_ENV_CONF_SETTINGS=`(. ${SCRIPT_DIR}/rabbitmq-sys; \
+ . /etc/rabbitmq/rabbitmq-env.conf; set;)`
+else
+ RABBITMQ_ENV_CONF_SETTINGS=`(. ${SCRIPT_DIR}/rabbitmq-sys; set;)`
+fi
+
+setRabbitEnvVarWithDefault()
+{ # Get value of var $2 from RABBITMQ_ENV_CONF_SETTINGS to set $1, only if $1 is empty
+ # $1 - var to set; $2 - var to use from RABBITMQ_ENV_CONF_SETTINGS
+ local $2; getRabbitEnvVar $2; applyDefault $1 $2
+}
+getRabbitEnvVar()
+{ # $1 - var to set
+ eval `echo "$RABBITMQ_ENV_CONF_SETTINGS" | grep "^$1"`
+}
+applyDefault()
+{ # $1 - var to set; $2 - var with default value
+ [ -z "${!1}" ] && eval "$1="'"${!2}"'
+}
+
+# use default value of $2 (obtained from RABBITMQ_ENV_CONF_SETTINGS) to set empty value of $1:
+setRabbitEnvVarWithDefault RABBITMQ_NODE_IP_ADDRESS NODE_IP_ADDRESS
+setRabbitEnvVarWithDefault RABBITMQ_NODE_PORT NODE_PORT
+setRabbitEnvVarWithDefault RABBITMQ_NODENAME NODENAME
+setRabbitEnvVarWithDefault RABBITMQ_SERVER_ERL_ARGS SERVER_ERL_ARGS
+setRabbitEnvVarWithDefault RABBITMQ_CTL_ERL_ARGS CTL_ERL_ARGS
+setRabbitEnvVarWithDefault RABBITMQ_CONFIG_FILE CONFIG_FILE
+setRabbitEnvVarWithDefault RABBITMQ_LOG_BASE LOG_BASE
+setRabbitEnvVarWithDefault RABBITMQ_MNESIA_BASE MNESIA_BASE
+setRabbitEnvVarWithDefault RABBITMQ_SERVER_START_ARGS SERVER_START_ARGS
+setRabbitEnvVarWithDefault RABBITMQ_MNESIA_DIR MNESIA_DIR
+setRabbitEnvVarWithDefault RABBITMQ_PID_FILE PID_FILE
+setRabbitEnvVarWithDefault RABBITMQ_PLUGINS_EXPAND_DIR PLUGINS_EXPAND_DIR
+setRabbitEnvVarWithDefault RABBITMQ_ENABLED_PLUGINS_FILE ENABLED_PLUGINS_FILE
+setRabbitEnvVarWithDefault RABBITMQ_PLUGINS_DIR PLUGINS_DIR
+setRabbitEnvVarWithDefault RABBITMQ_LOGS LOGS
+setRabbitEnvVarWithDefault RABBITMQ_SASL_LOGS SASL_LOGS
+
+# dependent default settings:
+[ -z "$RABBITMQ_MNESIA_DIR" ] && RABBITMQ_MNESIA_DIR=${RABBITMQ_MNESIA_BASE}/${RABBITMQ_NODENAME}
+[ -z "$RABBITMQ_PID_FILE" ] && RABBITMQ_PID_FILE=${RABBITMQ_MNESIA_DIR}.pid
+[ -z "$RABBITMQ_PLUGINS_EXPAND_DIR" ] && RABBITMQ_PLUGINS_EXPAND_DIR=${RABBITMQ_MNESIA_BASE}/${RABBITMQ_NODENAME}-plugins-expand
+[ -z "$RABBITMQ_LOGS" ] && RABBITMQ_LOGS="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}.log"
+[ -z "$RABBITMQ_SASL_LOGS" ] && RABBITMQ_SASL_LOGS="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}-sasl.log"
+
+# inter-dependent defaults not user modifiable:
+RABBITMQ_ENV_CONF_SETTINGS=`(. ${SCRIPT_DIR}/rabbitmq-sys; set;)`
+[ -n "$RABBITMQ_NODE_PORT" ] && setRabbitEnvVarWithDefault RABBITMQ_NODE_IP_ADDRESS DEFAULT_NODE_IP_ADDRESS
+[ -n "$RABBITMQ_NODE_IP_ADDRESS" ] && setRabbitEnvVarWithDefault RABBITMQ_NODE_PORT DEFAULT_NODE_PORT
diff --git a/scripts/rabbitmq-plugins b/scripts/rabbitmq-plugins
index 247cbfe2..05d86fd5 100755
--- a/scripts/rabbitmq-plugins
+++ b/scripts/rabbitmq-plugins
@@ -16,16 +16,9 @@
##
# Get default settings with user overrides for (RABBITMQ_)<var_name>
-# Non-empty defaults should be set in rabbitmq-env
+# All settings are obtained in rabbitmq-env
. `dirname $0`/rabbitmq-env
-##--- Set environment vars RABBITMQ_<var_name> to defaults if not set
-
-[ "x" = "x$RABBITMQ_ENABLED_PLUGINS_FILE" ] && RABBITMQ_ENABLED_PLUGINS_FILE=${ENABLED_PLUGINS_FILE}
-[ "x" = "x$RABBITMQ_PLUGINS_DIR" ] && RABBITMQ_PLUGINS_DIR=${PLUGINS_DIR}
-
-##--- End of overridden <var_name> variables
-
exec erl \
-pa "${RABBITMQ_HOME}/ebin" \
-noinput \
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index a191805f..b6265fcb 100755
--- a/scripts/rabbitmq-server
+++ b/scripts/rabbitmq-server
@@ -16,47 +16,9 @@
##
# Get default settings with user overrides for (RABBITMQ_)<var_name>
-# Non-empty defaults should be set in rabbitmq-env
+# All settings are obtained in rabbitmq-env
. `dirname $0`/rabbitmq-env
-##--- Set environment vars RABBITMQ_<var_name> to defaults if not set
-
-DEFAULT_NODE_IP_ADDRESS=auto
-DEFAULT_NODE_PORT=5672
-[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=${NODE_IP_ADDRESS}
-[ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=${NODE_PORT}
-
-[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && [ "x" != "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_IP_ADDRESS=${DEFAULT_NODE_IP_ADDRESS}
-[ "x" != "x$RABBITMQ_NODE_IP_ADDRESS" ] && [ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=${DEFAULT_NODE_PORT}
-
-[ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=${NODENAME}
-[ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS=${SERVER_ERL_ARGS}
-[ "x" = "x$RABBITMQ_CONFIG_FILE" ] && RABBITMQ_CONFIG_FILE=${CONFIG_FILE}
-[ "x" = "x$RABBITMQ_LOG_BASE" ] && RABBITMQ_LOG_BASE=${LOG_BASE}
-[ "x" = "x$RABBITMQ_MNESIA_BASE" ] && RABBITMQ_MNESIA_BASE=${MNESIA_BASE}
-[ "x" = "x$RABBITMQ_SERVER_START_ARGS" ] && RABBITMQ_SERVER_START_ARGS=${SERVER_START_ARGS}
-
-[ "x" = "x$RABBITMQ_MNESIA_DIR" ] && RABBITMQ_MNESIA_DIR=${MNESIA_DIR}
-[ "x" = "x$RABBITMQ_MNESIA_DIR" ] && RABBITMQ_MNESIA_DIR=${RABBITMQ_MNESIA_BASE}/${RABBITMQ_NODENAME}
-
-[ "x" = "x$RABBITMQ_PID_FILE" ] && RABBITMQ_PID_FILE=${PID_FILE}
-[ "x" = "x$RABBITMQ_PID_FILE" ] && RABBITMQ_PID_FILE=${RABBITMQ_MNESIA_DIR}.pid
-
-[ "x" = "x$RABBITMQ_PLUGINS_EXPAND_DIR" ] && RABBITMQ_PLUGINS_EXPAND_DIR=${PLUGINS_EXPAND_DIR}
-[ "x" = "x$RABBITMQ_PLUGINS_EXPAND_DIR" ] && RABBITMQ_PLUGINS_EXPAND_DIR=${RABBITMQ_MNESIA_BASE}/${RABBITMQ_NODENAME}-plugins-expand
-
-[ "x" = "x$RABBITMQ_ENABLED_PLUGINS_FILE" ] && RABBITMQ_ENABLED_PLUGINS_FILE=${ENABLED_PLUGINS_FILE}
-
-[ "x" = "x$RABBITMQ_PLUGINS_DIR" ] && RABBITMQ_PLUGINS_DIR=${PLUGINS_DIR}
-
-## Log rotation
-[ "x" = "x$RABBITMQ_LOGS" ] && RABBITMQ_LOGS=${LOGS}
-[ "x" = "x$RABBITMQ_LOGS" ] && RABBITMQ_LOGS="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}.log"
-[ "x" = "x$RABBITMQ_SASL_LOGS" ] && RABBITMQ_SASL_LOGS=${SASL_LOGS}
-[ "x" = "x$RABBITMQ_SASL_LOGS" ] && RABBITMQ_SASL_LOGS="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}-sasl.log"
-
-##--- End of overridden <var_name> variables
-
RABBITMQ_START_RABBIT=
[ "x" = "x$RABBITMQ_ALLOW_INPUT" ] && RABBITMQ_START_RABBIT='-noinput'
diff --git a/scripts/rabbitmq-sys b/scripts/rabbitmq-sys
index c58341ef..2448ff1d 100644
--- a/scripts/rabbitmq-sys
+++ b/scripts/rabbitmq-sys
@@ -18,13 +18,12 @@
## Set system default values
SERVER_ERL_ARGS="+K true +A30 +P 1048576 \
-kernel inet_default_connect_options [{nodelay,true}]"
-
CONFIG_FILE=/etc/rabbitmq/rabbitmq
-
LOG_BASE=/var/log/rabbitmq
-
MNESIA_BASE=/var/lib/rabbitmq/mnesia
-
PLUGINS_DIR="${RABBITMQ_HOME}/plugins"
-
ENABLED_PLUGINS_FILE=/etc/rabbitmq/enabled_plugins
+
+## conditional system defaults
+DEFAULT_NODE_IP_ADDRESS=auto
+DEFAULT_NODE_PORT=5672
diff --git a/scripts/rabbitmqctl b/scripts/rabbitmqctl
index 887eeac6..78926322 100755
--- a/scripts/rabbitmqctl
+++ b/scripts/rabbitmqctl
@@ -16,16 +16,9 @@
##
# Get default settings with user overrides for (RABBITMQ_)<var_name>
-# Non-empty defaults should be set in rabbitmq-env
+# All settings are obtained in rabbitmq-env
. `dirname $0`/rabbitmq-env
-##--- Set environment vars RABBITMQ_<var_name> to defaults if not set
-
-[ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=${NODENAME}
-[ "x" = "x$RABBITMQ_CTL_ERL_ARGS" ] && RABBITMQ_CTL_ERL_ARGS=${CTL_ERL_ARGS}
-
-##--- End of overridden <var_name> variables
-
exec erl \
-pa "${RABBITMQ_HOME}/ebin" \
-noinput \