Refactor shared error reporting code

This commit is contained in:
Tuncer Ayaz 2012-06-05 21:02:14 +02:00
parent 0716cf708c
commit 8a2274b8b4
3 changed files with 24 additions and 21 deletions

View file

@ -29,7 +29,7 @@
-include("rebar.hrl"). -include("rebar.hrl").
-export([run/4, run/7, run/8, -export([run/4, run/7, run/8,
format_errors/2, format_warnings/2, format_warnings/3]). ok_tuple/2, error_tuple/4]).
%% =================================================================== %% ===================================================================
@ -80,18 +80,11 @@ run(Config, FirstFiles, SourceDir, SourceExt, TargetDir, TargetExt,
simple_compile_wrapper(S, Target, Compile3Fn, C, CheckLastMod) simple_compile_wrapper(S, Target, Compile3Fn, C, CheckLastMod)
end). end).
format_errors(Source, Errors) -> ok_tuple(Source, Ws) ->
format_errors(Source, "", Errors). {ok, format_warnings(Source, Ws)}.
format_warnings(Source, Warnings) -> error_tuple(Source, Es, Ws, Opts) ->
format_warnings(Source, Warnings, []). {error, format_errors(Source, Es), format_warnings(Source, Ws, Opts)}.
format_warnings(Source, Warnings, Opts) ->
Prefix = case lists:member(warnings_as_errors, Opts) of
true -> "";
false -> "Warning: "
end,
format_errors(Source, Prefix, Warnings).
%% =================================================================== %% ===================================================================
%% Internal functions %% Internal functions
@ -218,6 +211,19 @@ compile_worker(QueuePid, Config, CompileFn) ->
ok ok
end. end.
format_errors(Source, Errors) ->
format_errors(Source, "", Errors).
format_warnings(Source, Warnings) ->
format_warnings(Source, Warnings, []).
format_warnings(Source, Warnings, Opts) ->
Prefix = case lists:member(warnings_as_errors, Opts) of
true -> "";
false -> "Warning: "
end,
format_errors(Source, Prefix, Warnings).
maybe_report([{error, {error, _Es, _Ws}=ErrorsAndWarnings}, {source, _}]) -> maybe_report([{error, {error, _Es, _Ws}=ErrorsAndWarnings}, {source, _}]) ->
maybe_report(ErrorsAndWarnings); maybe_report(ErrorsAndWarnings);
maybe_report({error, Es, Ws}) -> maybe_report({error, Es, Ws}) ->

View file

@ -262,10 +262,9 @@ internal_erl_compile(Source, Config, Outdir, ErlOpts) ->
{ok, _Mod} -> {ok, _Mod} ->
ok; ok;
{ok, _Mod, Ws} -> {ok, _Mod, Ws} ->
{ok, rebar_base_compiler:format_warnings(Source, Ws)}; rebar_base_compiler:ok_tuple(Source, Ws);
{error, Es, Ws} -> {error, Es, Ws} ->
{error, rebar_base_compiler:format_errors(Source, Es), rebar_base_compiler:error_tuple(Source, Es, Ws, Opts)
rebar_base_compiler:format_warnings(Source, Ws, Opts)}
end; end;
false -> false ->
skipped skipped
@ -310,10 +309,9 @@ compile_xrl_yrl(Source, Target, Opts, Mod) ->
{ok, _} -> {ok, _} ->
ok; ok;
{ok, _Mod, Ws} -> {ok, _Mod, Ws} ->
{ok, rebar_base_compiler:format_warnings(Source, Ws)}; rebar_base_compiler:ok_tuple(Source, Ws);
{error, Es, Ws} -> {error, Es, Ws} ->
{error, rebar_base_compiler:format_errors(Source, Es), rebar_base_compiler:error_tuple(Source, Es, Ws, Opts)
rebar_base_compiler:format_warnings(Source, Ws, Opts)}
end; end;
false -> false ->
skipped skipped

View file

@ -63,10 +63,9 @@ compile_lfe(Source, _Target, Config) ->
++ rebar_config:get_list(Config, erl_opts, []), ++ rebar_config:get_list(Config, erl_opts, []),
case lfe_comp:file(Source, Opts) of case lfe_comp:file(Source, Opts) of
{ok, _Mod, Ws} -> {ok, _Mod, Ws} ->
{ok, rebar_base_compiler:format_warnings(Source, Ws)}; rebar_base_compiler:ok_tuple(Source, Ws);
{error, Es, Ws} -> {error, Es, Ws} ->
{error, rebar_base_compiler:format_errors(Source, Es), rebar_base_compiler:error_tuple(Source, Es, Ws, Opts);
rebar_base_compiler:format_warnings(Source, Ws, Opts)};
_ -> _ ->
?ABORT ?ABORT
end end