refactor(review): factor out common functionality
This commit is contained in:
parent
0932920d36
commit
93caddd448
|
@ -102,16 +102,11 @@ main(Options, Baseline) ->
|
||||||
Diffs =
|
Diffs =
|
||||||
lists:filtermap(
|
lists:filtermap(
|
||||||
fun({App, {Upgrade, Downgrade, OldUpgrade, OldDowngrade}}) ->
|
fun({App, {Upgrade, Downgrade, OldUpgrade, OldDowngrade}}) ->
|
||||||
DiffUp = diff_appup_instructions(Upgrade, OldUpgrade),
|
case parse_appup_diffs(Upgrade, OldUpgrade,
|
||||||
DiffDown = diff_appup_instructions(Downgrade, OldDowngrade),
|
Downgrade, OldDowngrade) of
|
||||||
case {DiffUp, DiffDown} of
|
ok ->
|
||||||
{[], []} ->
|
|
||||||
%% no diff for external dependency
|
|
||||||
false;
|
false;
|
||||||
_ ->
|
{diffs, Diffs} ->
|
||||||
Diffs = #{ up => DiffUp
|
|
||||||
, down => DiffDown
|
|
||||||
},
|
|
||||||
{true, {App, Diffs}}
|
{true, {App, Diffs}}
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
@ -237,6 +232,23 @@ diff_appup_instructions(ComputedChanges, PresentChanges) ->
|
||||||
[],
|
[],
|
||||||
ComputedChanges).
|
ComputedChanges).
|
||||||
|
|
||||||
|
%% For external dependencies, checks if any missing diffs are present
|
||||||
|
%% and groups them by `up' and `down' types.
|
||||||
|
parse_appup_diffs(Upgrade, OldUpgrade, Downgrade, OldDowngrade) ->
|
||||||
|
DiffUp = diff_appup_instructions(Upgrade, OldUpgrade),
|
||||||
|
DiffDown = diff_appup_instructions(Downgrade, OldDowngrade),
|
||||||
|
case {DiffUp, DiffDown} of
|
||||||
|
{[], []} ->
|
||||||
|
%% no diff for external dependency; ignore
|
||||||
|
ok;
|
||||||
|
_ ->
|
||||||
|
set_invalid(),
|
||||||
|
Diffs = #{ up => DiffUp
|
||||||
|
, down => DiffDown
|
||||||
|
},
|
||||||
|
{diffs, Diffs}
|
||||||
|
end.
|
||||||
|
|
||||||
%% TODO: handle regexes
|
%% TODO: handle regexes
|
||||||
find_matching_version(Vsn, PresentChanges) ->
|
find_matching_version(Vsn, PresentChanges) ->
|
||||||
proplists:get_value(Vsn, PresentChanges).
|
proplists:get_value(Vsn, PresentChanges).
|
||||||
|
@ -333,17 +345,13 @@ do_update_appup(App, Upgrade, Downgrade, OldUpgrade, OldDowngrade) ->
|
||||||
{ok, AppupFile} ->
|
{ok, AppupFile} ->
|
||||||
render_appfile(AppupFile, Upgrade, Downgrade);
|
render_appfile(AppupFile, Upgrade, Downgrade);
|
||||||
false ->
|
false ->
|
||||||
DiffUp = diff_appup_instructions(Upgrade, OldUpgrade),
|
case parse_appup_diffs(Upgrade, OldUpgrade,
|
||||||
DiffDown = diff_appup_instructions(Downgrade, OldDowngrade),
|
Downgrade, OldDowngrade) of
|
||||||
case {DiffUp, DiffDown} of
|
ok ->
|
||||||
{[], []} ->
|
|
||||||
%% no diff for external dependency; ignore
|
%% no diff for external dependency; ignore
|
||||||
ok;
|
ok;
|
||||||
_ ->
|
{diffs, Diffs} ->
|
||||||
set_invalid(),
|
set_invalid(),
|
||||||
Diffs = #{ up => DiffUp
|
|
||||||
, down => DiffDown
|
|
||||||
},
|
|
||||||
log("ERROR: Appup file for the external dependency '~p' is not complete.~n Missing changes: ~100p~n", [App, Diffs]),
|
log("ERROR: Appup file for the external dependency '~p' is not complete.~n Missing changes: ~100p~n", [App, Diffs]),
|
||||||
log("NOTE: Some changes above might be already covered by regexes.~n")
|
log("NOTE: Some changes above might be already covered by regexes.~n")
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue