build: fix relup app overwrite escript

the rel file name is always emqx.rel, has nothing to do with profile
This commit is contained in:
Zaiming (Stone) Shi 2022-08-03 10:01:20 +02:00
parent a162196719
commit e74a97013e
2 changed files with 16 additions and 13 deletions

2
build
View File

@ -100,7 +100,7 @@ make_relup() {
if [ ! -f "${emqx_rel_file}" ]; then
./rebar3 as "${PROFILE}" release
fi
scripts/emqx_rel_otp_app_overwrite.escript "${releases_dir}" "${PROFILE}" "${PKG_VSN}" "${RELX_BASE_VERSIONS}"
scripts/emqx_rel_otp_app_overwrite.escript "${releases_dir}" "${PKG_VSN}" "${RELX_BASE_VERSIONS}"
fi
./rebar3 as "$PROFILE" relup --relname emqx --relvsn "${PKG_VSN}"

View File

@ -7,19 +7,24 @@
%%
%% note, we use NEW to overwrite OLD is because the modified NEW rel file will be overwritten by next 'rebar relup'
%%
main([Dir, Profile, RelVsn, BASE_VERSIONS]) ->
{ErtsVsn, Overwrites} = get_otp_apps(rel_file(Profile, Dir, RelVsn), RelVsn),
main([Dir, RelVsn, BASE_VERSIONS]) ->
{ErtsVsn, Overwrites} = get_otp_apps(rel_file(Dir, RelVsn), RelVsn),
lists:foreach(fun(BaseVer) ->
base_rel_overwrites(BaseVer, Profile, Dir, ErtsVsn, Overwrites)
base_rel_overwrites(BaseVer, Dir, ErtsVsn, Overwrites)
end, string:tokens(BASE_VERSIONS, ",")).
get_otp_apps(RelFile, RelVsn) ->
{ok, [{release, {"emqx", RelVsn}, {erts, ErtsVsn}, AppList}]} = file:consult(RelFile),
case file:consult(RelFile) of
{ok, [{release, {"emqx", RelVsn}, {erts, ErtsVsn}, AppList}]} ->
Apps = lists:filter(fun(X) -> lists:member(element(1, X), otp_apps()) end, AppList),
{ErtsVsn, Apps}.
{ErtsVsn, Apps};
{error, Reason} ->
io:format(standard_error, "failed_to_read_file ~p for release ~p~nreason=~p~n", [RelFile, RelVsn, Reason]),
halt(1)
end.
base_rel_overwrites(RelVsn, Profile, Dir, ErtsVsn, Overwrites) ->
RelFile = rel_file(Profile, Dir, RelVsn),
base_rel_overwrites(RelVsn, Dir, ErtsVsn, Overwrites) ->
RelFile = rel_file(Dir, RelVsn),
file:copy(RelFile, RelFile++".bak"),
{ok, [{release, {"emqx", RelVsn}, {erts, _BaseErtsVsn}, BaseAppList}]} = file:consult(RelFile),
NewData = [ {release, {"emqx", RelVsn}, {erts, ErtsVsn},
@ -34,10 +39,8 @@ base_rel_overwrites(RelVsn, Profile, Dir, ErtsVsn, Overwrites) ->
],
ok = file:write_file(RelFile, io_lib:format("~p.", NewData)).
rel_file("emqx-edge", Dir, RelVsn)->
rel_file("emqx", Dir, RelVsn);
rel_file(Profile, Dir, RelVsn)->
filename:join([Dir, RelVsn, Profile++".rel"]).
rel_file(Dir, RelVsn)->
filename:join([Dir, RelVsn, "emqx.rel"]).
otp_apps() ->
{ok, [Apps]} = file:consult("scripts/rel_otp_apps.eterm"),