summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rebar_app_utils.erl31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/rebar_app_utils.erl b/src/rebar_app_utils.erl
index 5fe5ba6..037bf9d 100644
--- a/src/rebar_app_utils.erl
+++ b/src/rebar_app_utils.erl
@@ -100,6 +100,7 @@ validate_application_info(AppInfo, AppDetail) ->
undefined ->
false;
AppFile ->
+ lint_detail(AppDetail, AppFile),
case proplists:get_value(modules, AppDetail) of
undefined ->
?PRV_ERROR({module_list, AppFile});
@@ -108,6 +109,36 @@ validate_application_info(AppInfo, AppDetail) ->
end
end.
+-spec lint_detail(list(), file:filename_all()) -> ok.
+lint_detail(AppDetail, AppFile) ->
+ lint_description(AppDetail, AppFile),
+ lint_applications(AppDetail, AppFile).
+
+-spec lint_description(list(), file:filename_all()) -> ok.
+lint_description(AppDetail, AppFile) ->
+ case proplists:get_value(description, AppDetail, "") of
+ "" -> ?WARN("~p is missing description entry", [AppFile]);
+ _ -> ok
+ end.
+
+-spec lint_applications(list(), file:filename_all()) -> ok.
+lint_applications(AppDetail, AppFile) ->
+ case proplists:get_value(applications, AppDetail, []) of
+ [] -> ?WARN("~p is missing applications entry", [AppFile]);
+ AppList when is_list(AppList) ->
+ case lists:member(kernel, AppList) of
+ false ->
+ ?WARN("~p is missing kernel from applications list", [AppFile]);
+ true -> ok
+ end,
+ case lists:member(stdlib, AppList) of
+ false ->
+ ?WARN("~p is missing stdlib from applications list", [AppFile]);
+ true -> ok
+ end;
+ _ -> ?WARN("~p requires a list for applications key", [AppFile])
+ end.
+
%% @doc parses all dependencies from the root of the project
-spec parse_deps(Dir, Deps, State, Locks, Level) -> [rebar_app_info:t()] when
Dir :: file:filename(),