aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src/slave.erl
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2018-05-16 15:13:25 +0200
committerHans Bolinder <[email protected]>2018-05-16 15:13:25 +0200
commit455fde56f533bd80d1a9d37058c3381521e201ba (patch)
treeca067697a333f39ec589535e13ae2852e949cd8c /lib/stdlib/src/slave.erl
parent84e655feccb4780b8db17a42549b35ded03baf1a (diff)
parent275f51a34c1c2d9c4d31dad918a7a3b5c3631313 (diff)
downloadotp-455fde56f533bd80d1a9d37058c3381521e201ba.tar.gz
otp-455fde56f533bd80d1a9d37058c3381521e201ba.tar.bz2
otp-455fde56f533bd80d1a9d37058c3381521e201ba.zip
Merge branch 'richcarl/eliminate_lib_module/PR-1786/OTP-15072'
* richcarl/eliminate_lib_module/PR-1786/OTP-15072: Fix minor issues Eliminate call to ct:get_progname() in ts_erl_config Use \n escape instead of integer 10 Move error formatting to erl_error.erl and delete lib.erl Move extended parse functions in lib.erl to erl_eval.erl Move lib:eval_str/1 into mod_esi.erl Remove lib:progname/0 Eliminate call to lib:progname/1 in slave.erl Add ct:get_progname/0 Remove lib:error_message/2 Remove lib:flush_receive/0 Remove lib:send/2 and lib:sendw/2 Move lib:nonl/1 into yecc.erl
Diffstat (limited to 'lib/stdlib/src/slave.erl')
-rw-r--r--lib/stdlib/src/slave.erl14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/stdlib/src/slave.erl b/lib/stdlib/src/slave.erl
index b3f3206d67..37c1f6bfd9 100644
--- a/lib/stdlib/src/slave.erl
+++ b/lib/stdlib/src/slave.erl
@@ -187,7 +187,7 @@ start_link(Host, Name, Args) ->
start(Host, Name, Args, self()).
start(Host0, Name, Args, LinkTo) ->
- Prog = lib:progname(),
+ Prog = progname(),
start(Host0, Name, Args, LinkTo, Prog).
start(Host0, Name, Args, LinkTo, Prog) ->
@@ -296,7 +296,6 @@ mk_cmd(Host, Name, Args, Waiter, Prog0) ->
" -s slave slave_start ", node(),
" ", Waiter,
" ", Args]),
-
case after_char($@, atom_to_list(node())) of
Host ->
{ok, BasicCmd};
@@ -309,6 +308,15 @@ mk_cmd(Host, Name, Args, Waiter, Prog0) ->
end
end.
+%% Return the name of the script that starts (this) erlang
+progname() ->
+ case init:get_argument(progname) of
+ {ok, [[Prog]]} ->
+ Prog;
+ _Other ->
+ "no_prog_name"
+ end.
+
%% This is an attempt to distinguish between spaces in the program
%% path and spaces that separate arguments. The program is quoted to
%% allow spaces in the path.
@@ -317,7 +325,7 @@ mk_cmd(Host, Name, Args, Waiter, Prog0) ->
%% (through start/5) or if the -program switch to beam is used and
%% includes arguments (typically done by cerl in OTP test environment
%% in order to ensure that slave/peer nodes are started with the same
-%% emulator and flags as the test node. The return from lib:progname()
+%% emulator and flags as the test node. The result from progname()
%% could then typically be '/<full_path_to>/cerl -gcov').
quote_progname(Progname) ->
do_quote_progname(string:lexemes(to_list(Progname)," ")).