diff options
| author | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2015-04-21 10:59:55 +0200 |
|---|---|---|
| committer | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2015-04-21 10:59:55 +0200 |
| commit | 666fdb0af98efe267be1409d218356dc20f691a7 (patch) | |
| tree | 8d2b340c7ef5ebb0f8d78444248e31a453260092 /scripts/rabbitmq-env | |
| parent | ff08f21b15e7280d2ed97e519b9c7a1d40213c54 (diff) | |
| download | rabbitmq-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-x | scripts/rabbitmq-env | 44 |
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 |
