summaryrefslogtreecommitdiff
path: root/scripts/rabbitmq-env
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2015-04-21 10:59:55 +0200
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2015-04-21 10:59:55 +0200
commit666fdb0af98efe267be1409d218356dc20f691a7 (patch)
tree8d2b340c7ef5ebb0f8d78444248e31a453260092 /scripts/rabbitmq-env
parentff08f21b15e7280d2ed97e519b9c7a1d40213c54 (diff)
downloadrabbitmq-server-git-666fdb0af98efe267be1409d218356dc20f691a7.tar.gz
rabbitmq-env: Remove trailing slash from configurable paths
This fixes at least one problem with $RABBITMQ_PID_FILE which, by default, is set to: RABBITMQ_PID_FILE=${RABBITMQ_MNESIA_DIR}.pid In this case, if $RABBITMQ_MNESIA_DIR ends with a trailing slash, the PID file is a hidden file placed in the Mnesia directory. This prevents auto-clustering from working and this is tricky to understand why. Fixes #118.
Diffstat (limited to 'scripts/rabbitmq-env')
-rwxr-xr-xscripts/rabbitmq-env44
1 files changed, 43 insertions, 1 deletions
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env
index de30b4e705..af6508c258 100755
--- a/scripts/rabbitmq-env
+++ b/scripts/rabbitmq-env
@@ -77,6 +77,34 @@ fi
##--- Set environment vars RABBITMQ_<var_name> to defaults if not set
+rmq_normalize_path() {
+ local path=$1
+
+ echo "$path" | sed -E -e 's,//+,/,g' -e 's,(.)/$,\1,'
+}
+
+rmq_normalize_path_var() {
+ local var warning
+
+ local prefix="WARNING:"
+
+ for var in "$@"; do
+ local path=$(eval "echo \"\$$var\"")
+ case "$path" in
+ */)
+ warning=1
+ echo "$prefix Removing trailing slash from $var" 1>&2
+ ;;
+ esac
+
+ eval "$var=$(rmq_normalize_path "$path")"
+
+ if [ "x$warning" = "x1" ]; then
+ prefix=" "
+ fi
+ done
+}
+
rmq_realpath() {
local path=$1
@@ -90,7 +118,7 @@ rmq_realpath() {
}
rmq_check_if_shared_with_mnesia() {
- local var
+ local var warning
local mnesia_dir=$(rmq_realpath "${RABBITMQ_MNESIA_DIR}")
local prefix="WARNING:"
@@ -141,15 +169,25 @@ DEFAULT_NODE_PORT=5672
[ "x" = "x$RABBITMQ_MNESIA_DIR" ] && RABBITMQ_MNESIA_DIR=${MNESIA_DIR}
[ "x" = "x$RABBITMQ_MNESIA_DIR" ] && RABBITMQ_MNESIA_DIR=${RABBITMQ_MNESIA_BASE}/${RABBITMQ_NODENAME}
+rmq_normalize_path_var \
+ RABBITMQ_CONFIG_FILE \
+ RABBITMQ_LOG_BASE \
+ RABBITMQ_MNESIA_BASE \
+ RABBITMQ_MNESIA_DIR
+
[ "x" = "x$RABBITMQ_PID_FILE" ] && RABBITMQ_PID_FILE=${PID_FILE}
[ "x" = "x$RABBITMQ_PID_FILE" ] && RABBITMQ_PID_FILE=${RABBITMQ_MNESIA_DIR}.pid
+rmq_normalize_path_var RABBITMQ_PID_FILE
[ "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
+rmq_normalize_path_var RABBITMQ_PLUGINS_EXPAND_DIR
[ "x" = "x$RABBITMQ_ENABLED_PLUGINS_FILE" ] && RABBITMQ_ENABLED_PLUGINS_FILE=${ENABLED_PLUGINS_FILE}
+rmq_normalize_path_var RABBITMQ_ENABLED_PLUGINS_FILE
[ "x" = "x$RABBITMQ_PLUGINS_DIR" ] && RABBITMQ_PLUGINS_DIR=${PLUGINS_DIR}
+rmq_normalize_path_var RABBITMQ_PLUGINS_DIR
## Log rotation
[ "x" = "x$RABBITMQ_LOGS" ] && RABBITMQ_LOGS=${LOGS}
@@ -157,6 +195,10 @@ DEFAULT_NODE_PORT=5672
[ "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"
+rmq_normalize_path_var \
+ RABBITMQ_LOGS \
+ RABBITMQ_SASL_LOGS
+
[ "x" = "x$RABBITMQ_CTL_ERL_ARGS" ] && RABBITMQ_CTL_ERL_ARGS=${CTL_ERL_ARGS}
# Check if files and directories non-related to Mnesia are configured