summaryrefslogtreecommitdiff
path: root/scripts/rabbitmq-defaults.bat
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2015-12-14 13:52:47 +0100
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2016-01-26 11:29:39 +0100
commit4fdacff37dba18e553c8f37c5c43f87de03b793d (patch)
treebc7d2132ae8401b31060ec136ef94e5a02f2a513 /scripts/rabbitmq-defaults.bat
parent6d3636afe1e45b23447e809094c7a7d75240ed0f (diff)
downloadrabbitmq-server-git-4fdacff37dba18e553c8f37c5c43f87de03b793d.tar.gz
Use short filenames in Windows startup scripts
On Windows, cmd.exe and batch scripts do not support Uniode apparently. However, Windows uses UTF-16 to encode filenames one disk. In batch scripts, filenames are converted to some one-byte-wide charset. Once passed to Erlang and RabbitMQ, those filenames are incorrect. In particular, the management UI is unhappy because filenames obviously contain invalid UTF-8 characters. Using short filenames makes sure filename only contain US-ASCII characters. To convert them, we use "for" expansion. At the same time, filenames are made absolute. It works even better than realpath.exe because the latter also converts filenames to another charset again. Fixe #493.
Diffstat (limited to 'scripts/rabbitmq-defaults.bat')
-rw-r--r--scripts/rabbitmq-defaults.bat5
1 files changed, 4 insertions, 1 deletions
diff --git a/scripts/rabbitmq-defaults.bat b/scripts/rabbitmq-defaults.bat
index 2125af68f1..41f706ef8d 100644
--- a/scripts/rabbitmq-defaults.bat
+++ b/scripts/rabbitmq-defaults.bat
@@ -23,6 +23,9 @@ if "!RABBITMQ_BASE!"=="" (
set RABBITMQ_BASE=!APPDATA!\RabbitMQ
)
+REM Make sure $RABBITMQ_BASE contains no non-ASCII characters.
+for /f "delims=" %%F in ("!RABBITMQ_BASE!") do set RABBITMQ_BASE=%%~sF
+
REM BOOT_MODULE="rabbit"
REM CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq
REM LOG_BASE=${SYS_PREFIX}/var/log/rabbitmq
@@ -35,7 +38,7 @@ set MNESIA_BASE=!RABBITMQ_BASE!\db
set ENABLED_PLUGINS_FILE=!RABBITMQ_BASE!\enabled_plugins
REM PLUGINS_DIR="${RABBITMQ_HOME}/plugins"
-set PLUGINS_DIR=!TDP0!..\plugins
+for /f "delims=" %%F in ("!TDP0!..\plugins") do set PLUGINS_DIR=%%~dpsF%%~nF%%~xF
REM CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf
if "!RABBITMQ_CONF_ENV_FILE!"=="" (