diff options
author | José Valim <[email protected]> | 2019-04-29 17:54:18 +0200 |
---|---|---|
committer | José Valim <[email protected]> | 2019-04-29 17:56:44 +0200 |
commit | 6944df6e540d57f5ddf04e01d44d3aefd9c4720d (patch) | |
tree | 8cb7b2e072a403c8ef42acf3bd165bdf5eee7f63 /lib | |
parent | 2f879097241d289e0100c7d1725485e2276a7f70 (diff) | |
download | otp-6944df6e540d57f5ddf04e01d44d3aefd9c4720d.tar.gz otp-6944df6e540d57f5ddf04e01d44d3aefd9c4720d.tar.bz2 otp-6944df6e540d57f5ddf04e01d44d3aefd9c4720d.zip |
Add hostname to -remsh if none is given
The -name option already computes a default
hostname if none is given. This PR adds the
same behaviour to -remsh. Now we can run:
erl -name foo -remsh bar
erl -sname foo -remsh bar
This simplifies deployment scripts as otherwise
they have to compute the hostname by hand or
start an Erlang VM instance only to do so.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/kernel/src/user_drv.erl | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/kernel/src/user_drv.erl b/lib/kernel/src/user_drv.erl index 08286dd476..69ff8e7971 100644 --- a/lib/kernel/src/user_drv.erl +++ b/lib/kernel/src/user_drv.erl @@ -120,7 +120,7 @@ server1(Iport, Oport, Shell) -> {Curr,Shell1} = case init:get_argument(remsh) of {ok,[[Node]]} -> - ANode = list_to_atom(Node), + ANode = list_to_atom(append_hostname(Node)), RShell = {ANode,shell,start,[]}, RGr = group:start(self(), RShell, rem_sh_opts(ANode)), {RGr,RShell}; @@ -139,6 +139,12 @@ server1(Iport, Oport, Shell) -> %% Enter the server loop. server_loop(Iport, Oport, Curr, User, Gr, {false, queue:new()}). +append_hostname(Node) -> + case string:find(Node, "@") of + nomatch -> Node ++ string:find(atom_to_list(node()), "@"); + _ -> Node + end. + rem_sh_opts(Node) -> [{expand_fun,fun(B)-> rpc:call(Node,edlin_expand,expand,[B]) end}]. |