aboutsummaryrefslogtreecommitdiffstats
path: root/lib/reltool/src
diff options
context:
space:
mode:
authorSiri Hansen <[email protected]>2012-03-12 17:34:15 +0100
committerSiri Hansen <[email protected]>2012-03-19 09:51:32 +0100
commitdac94945228322ffb9f8dd8495789c0cd64442a3 (patch)
treef029e91a1a637928e59229cb0d6bb3d15855a747 /lib/reltool/src
parent50bc03bf5cc4b55644d164819d8c58bef966e278 (diff)
downloadotp-dac94945228322ffb9f8dd8495789c0cd64442a3.tar.gz
otp-dac94945228322ffb9f8dd8495789c0cd64442a3.tar.bz2
otp-dac94945228322ffb9f8dd8495789c0cd64442a3.zip
[reltool] Just warn if same module occurs twice in .app file
OTP-9792 Earlier this would cause an error with reason "Module xxx potentially included by two different applications: yyy and yyy." This is now changed so it will only be a warning saying that the module is duplicated in the .app file.
Diffstat (limited to 'lib/reltool/src')
-rw-r--r--lib/reltool/src/reltool_server.erl40
1 files changed, 27 insertions, 13 deletions
diff --git a/lib/reltool/src/reltool_server.erl b/lib/reltool/src/reltool_server.erl
index d43be82cbd..29df619955 100644
--- a/lib/reltool/src/reltool_server.erl
+++ b/lib/reltool/src/reltool_server.erl
@@ -977,18 +977,32 @@ refresh_app(#app{name = AppName,
%% Add non-existing modules - i.e. create default #mod
%% records for all modules that are listed in .app file
%% but do not exist in ebin.
- AppInfoMods = AppInfo#app_info.modules,
- AppModNames =
- case AppInfo#app_info.mod of
- {StartModName, _} ->
- case lists:member(StartModName, AppInfoMods) of
- true -> AppInfoMods;
- false -> [StartModName | AppInfoMods]
- end;
- undefined ->
- AppInfoMods
- end,
- MissingMods = add_missing_mods(AppName, EbinMods, AppModNames),
+ AppInfoMods = lists:usort(AppInfo#app_info.modules),
+ Status4 =
+ case AppInfo#app_info.modules -- AppInfoMods of
+ [] ->
+ Status3;
+ DuplicatedMods ->
+ lists:foldl(
+ fun(M,S) ->
+ reltool_utils:add_warning(
+ "Module ~p duplicated in app file for "
+ "application ~p.", [M, AppName], S)
+ end,
+ Status3,
+ DuplicatedMods)
+ end,
+ AppModNames =
+ case AppInfo#app_info.mod of
+ {StartModName, _} ->
+ case lists:member(StartModName, AppInfoMods) of
+ true -> AppInfoMods;
+ false -> [StartModName | AppInfoMods]
+ end;
+ undefined ->
+ AppInfoMods
+ end,
+ MissingMods = add_missing_mods(AppName, EbinMods, AppModNames),
%% Add optional user config for each module.
%% The #mod records that are already in the #app record at
@@ -1013,7 +1027,7 @@ refresh_app(#app{name = AppName,
label = AppLabel,
info = AppInfo,
mods = lists:keysort(#mod.name, Mods3)},
- {App2, Status3};
+ {App2, Status4};
true ->
{App, Status}
end.