Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:19
erlang
0661-Add-hostname-to-remsh-if-none-is-given.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0661-Add-hostname-to-remsh-if-none-is-given.patch of Package erlang
From 6944df6e540d57f5ddf04e01d44d3aefd9c4720d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= <jose.valim@plataformatec.com.br> Date: Mon, 29 Apr 2019 17:54:18 +0200 Subject: [PATCH] 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. --- erts/doc/src/erl.xml | 5 ++++- lib/kernel/src/user_drv.erl | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml index 88ddb03e97..bfd4dd8fe9 100644 --- a/erts/doc/src/erl.xml +++ b/erts/doc/src/erl.xml @@ -460,7 +460,10 @@ <tag><c><![CDATA[-remsh Node]]></c></tag> <item> <p>Starts Erlang with a remote shell connected to - <c><![CDATA[Node]]></c>.</p> + <c><![CDATA[Node]]></c>. Requires either <c><![CDATA[-name]]></c> + or <c><![CDATA[-sname]]></c> to be given. If <c><![CDATA[Node]]></c> + does not contain a hostname, one is automatically taken from + <c><![CDATA[-name]]></c> or <c><![CDATA[-sname]]></c></p> </item> <tag><c><![CDATA[-rsh Program]]></c></tag> <item> 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 lists:member($@, Node) of + true -> Node; + false -> Node ++ lists:dropwhile(fun(C) -> C =/= $@ end, atom_to_list(node())) + end. + rem_sh_opts(Node) -> [{expand_fun,fun(B)-> rpc:call(Node,edlin_expand,expand,[B]) end}]. -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor