diff options
author | Tristan Sloughter <[email protected]> | 2019-05-18 07:25:44 -0600 |
---|---|---|
committer | Tristan Sloughter <[email protected]> | 2019-05-18 07:25:44 -0600 |
commit | 6283605584fd08502f48f34ee8d34622e57a9242 (patch) | |
tree | 83330fc9791ac819c36358d7050b4637a70191f3 /src/rlx_release.erl | |
parent | f87424e21fa04356a5c4dfbf5eb458b75583be7c (diff) | |
download | relx-6283605584fd08502f48f34ee8d34622e57a9242.tar.gz relx-6283605584fd08502f48f34ee8d34622e57a9242.tar.bz2 relx-6283605584fd08502f48f34ee8d34622e57a9242.zip |
include apps in start_clean release but don't load in console_clean
Diffstat (limited to 'src/rlx_release.erl')
-rw-r--r-- | src/rlx_release.erl | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/rlx_release.erl b/src/rlx_release.erl index a183043..ec26e6b 100644 --- a/src/rlx_release.erl +++ b/src/rlx_release.erl @@ -191,14 +191,23 @@ start_clean_metadata(#release_t{name=Name, vsn=Vsn, erts=ErtsVsn, applications=A realized=Realized}) -> case Realized of true -> - Kernel = lists:keyfind(kernel, 1, Apps), - StdLib = lists:keyfind(stdlib, 1, Apps), + {value, Kernel, Apps1} = lists:keytake(kernel, 1, Apps), + {value, StdLib, Apps2} = lists:keytake(stdlib, 1, Apps1), {ok, {release, {erlang:atom_to_list(Name), Vsn}, {erts, ErtsVsn}, - [Kernel, StdLib]}}; + [Kernel, StdLib | none_type_apps(Apps2)]}}; false -> ?RLX_ERROR({not_realized, Name, Vsn}) end. +none_type_apps([]) -> + []; +none_type_apps([{Name, Version} | Rest]) -> + [{Name, Version, none} | none_type_apps(Rest)]; +none_type_apps([{Name, Version, _} | Rest]) -> + [{Name, Version, none} | none_type_apps(Rest)]; +none_type_apps([{Name, Version, _, _} | Rest]) -> + [{Name, Version, none} | none_type_apps(Rest)]. + %% The no_dot_erlang.rel.src file is a literal copy of start_clean.rel.src %% in Erlang/OTP itself. -spec no_dot_erlang_metadata(t()) -> term(). |