aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src
diff options
context:
space:
mode:
authorJose M Perez <[email protected]>2019-05-19 22:06:36 +0200
committerJose M Perez <[email protected]>2019-05-19 22:06:36 +0200
commit322d54e76d5c88881d4299b6a17e02eb76dd6d8f (patch)
tree4787ff5278543ec32875e7cc3eb4f504e266ed50 /lib/kernel/src
parent0aa68ff0e4b3c15c8f9cdccec8c2350dd12cdf5c (diff)
downloadotp-322d54e76d5c88881d4299b6a17e02eb76dd6d8f.tar.gz
otp-322d54e76d5c88881d4299b6a17e02eb76dd6d8f.tar.bz2
otp-322d54e76d5c88881d4299b6a17e02eb76dd6d8f.zip
Extra -mode flags are ignored with a warning
Prior to this change, providing multiple -mode flags to erl would start the code server as 'interactive', regardless of their value ('-mode embedded -mode embedded' would start erl as in interactive mode). With this change, the extra -mode flags are ignored, and a warning gets logged.
Diffstat (limited to 'lib/kernel/src')
-rw-r--r--lib/kernel/src/code.erl18
-rw-r--r--lib/kernel/src/kernel.erl2
2 files changed, 17 insertions, 3 deletions
diff --git a/lib/kernel/src/code.erl b/lib/kernel/src/code.erl
index 7faef93609..964ede9bc9 100644
--- a/lib/kernel/src/code.erl
+++ b/lib/kernel/src/code.erl
@@ -19,6 +19,8 @@
%%
-module(code).
+-include_lib("kernel/include/logger.hrl").
+
%% This is the interface module to the code server. It also contains
%% some implementation details. See also related modules: code_*.erl
%% in this directory.
@@ -707,8 +709,20 @@ do_s(Lib) ->
start_get_mode() ->
case init:get_argument(mode) of
- {ok,[["embedded"]]} ->
- embedded;
+ {ok, [FirstMode | Rest]} ->
+ case Rest of
+ [] ->
+ ok;
+ _ ->
+ ?LOG_WARNING("Multiple -mode given to erl, using the first, ~p",
+ [FirstMode])
+ end,
+ case FirstMode of
+ ["embedded"] ->
+ embedded;
+ _ ->
+ interactive
+ end;
_ ->
interactive
end.
diff --git a/lib/kernel/src/kernel.erl b/lib/kernel/src/kernel.erl
index bfa091a036..1ca2e0fd11 100644
--- a/lib/kernel/src/kernel.erl
+++ b/lib/kernel/src/kernel.erl
@@ -141,7 +141,7 @@ init([]) ->
modules => [logger_sup]},
case init:get_argument(mode) of
- {ok, [["minimal"]]} ->
+ {ok, [["minimal"]|_]} ->
{ok, {SupFlags,
[Code, File, StdError, User, LoggerSup, Config, RefC, SafeSup]}};
_ ->