diff options
| author | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2015-11-03 19:13:55 +0100 |
|---|---|---|
| committer | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2015-11-03 19:13:55 +0100 |
| commit | 1fb451090a2557f35a2800f9d04c476ff1ad6a22 (patch) | |
| tree | 8161266fec3c260f9175eaf4ba339c2c4ddf1d63 /scripts/rabbitmq-env | |
| parent | d23b788326cb3bbe022962188654bc631e2176e5 (diff) | |
| download | rabbitmq-server-git-1fb451090a2557f35a2800f9d04c476ff1ad6a22.tar.gz | |
rabbitmq-env{,.bat}: Use Erlang to determine local hostname
This helps when Erlang and hostname(1) or %COMPUTERNAME% return different
value. This happened on Travis CI and some Windows hosts so far.
Diffstat (limited to 'scripts/rabbitmq-env')
| -rw-r--r-- | scripts/rabbitmq-env | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env index 0014643260..c46667097f 100644 --- a/scripts/rabbitmq-env +++ b/scripts/rabbitmq-env @@ -93,14 +93,22 @@ fi [ "x" = "x$RABBITMQ_USE_LONGNAME" ] && RABBITMQ_USE_LONGNAME=${USE_LONGNAME} if [ "xtrue" = "x$RABBITMQ_USE_LONGNAME" ] ; then RABBITMQ_NAME_TYPE=-name - [ "x" = "x$HOSTNAME" ] && HOSTNAME=`env hostname -f` - [ "x" = "x$NODENAME" ] && NODENAME=rabbit@${HOSTNAME} + NAMETYPE=longnames else RABBITMQ_NAME_TYPE=-sname - [ "x" = "x$HOSTNAME" ] && HOSTNAME=`env hostname` - [ "x" = "x$NODENAME" ] && NODENAME=rabbit@${HOSTNAME%%.*} + NAMETYPE=shortnames fi +# We use Erlang to query the local hostname because hostname(1) and +# Erlang may return different results. +[ "x" = "x$NODENAME" ] && NODENAME=rabbit@$( \ + erl -A0 -noinput -boot start_clean -eval \ + 'net_kernel:start([list_to_atom("rabbit-gethostname-" ++ os:getpid()), '$NAMETYPE']), + [_, H] = string:tokens(atom_to_list(node()), "@"), + io:format("~s~n", [H]), + halt().') +unset NAMETYPE + ##--- Set environment vars RABBITMQ_<var_name> to defaults if not set rmq_normalize_path() { |
