diff options
| author | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2015-12-14 13:52:47 +0100 |
|---|---|---|
| committer | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2016-01-26 11:29:39 +0100 |
| commit | 4fdacff37dba18e553c8f37c5c43f87de03b793d (patch) | |
| tree | bc7d2132ae8401b31060ec136ef94e5a02f2a513 /scripts/rabbitmq-defaults.bat | |
| parent | 6d3636afe1e45b23447e809094c7a7d75240ed0f (diff) | |
| download | rabbitmq-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.bat | 5 |
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!"=="" (
|
