summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rebar_otp_app.erl13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/rebar_otp_app.erl b/src/rebar_otp_app.erl
index fd7b965..4cac897 100644
--- a/src/rebar_otp_app.erl
+++ b/src/rebar_otp_app.erl
@@ -35,7 +35,7 @@
%% Public API
%% ===================================================================
-compile(_Config, File) ->
+compile(Config, File) ->
%% If we get an .app.src file, it needs to be pre-processed and
%% written out as a ebin/*.app file. That resulting file will then
%% be validated as usual.
@@ -50,7 +50,16 @@ compile(_Config, File) ->
case rebar_app_utils:load_app_file(AppFile) of
{ok, AppName, AppData} ->
validate_name(AppName, AppFile),
- validate_modules(AppName, proplists:get_value(modules, AppData));
+
+ %% In general, the list of modules is an important thing to validate
+ %% for compliance with OTP guidelines and upgrade procedures. However,
+ %% some people prefer not to validate this list.
+ case rebar_config:get_local(Config, validate_app_modules, true) of
+ true ->
+ validate_modules(AppName, proplists:get_value(modules, AppData));
+ false ->
+ ok
+ end;
{error, Reason} ->
?ABORT("Failed to load app file ~s: ~p\n", [AppFile, Reason])
end.