Share format_errors/format_warnings functions

This commit is contained in:
Tuncer Ayaz 2012-06-01 00:04:01 +02:00
parent 4e64e0c675
commit dff60918cb
2 changed files with 22 additions and 19 deletions

View file

@ -28,7 +28,8 @@
-include("rebar.hrl").
-export([run/4, run/7, run/8]).
-export([run/4, run/7, run/8,
format_errors/2, format_warnings/2]).
%% ===================================================================
@ -79,6 +80,11 @@ run(Config, FirstFiles, SourceDir, SourceExt, TargetDir, TargetExt,
simple_compile_wrapper(S, Target, Compile3Fn, C, CheckLastMod)
end).
format_errors(Source, Errors) ->
format_errors(Source, "", Errors).
format_warnings(Source, Warnings) ->
format_errors(Source, "Warning: ", Warnings).
%% ===================================================================
%% Internal functions
@ -215,3 +221,12 @@ maybe_report(_) ->
report(Messages) ->
lists:foreach(fun(Msg) -> io:format("~s~n", [Msg]) end, Messages).
format_errors(Source, Extra, Errors) ->
AbsSource = filename:absname(Source),
[lists:append([format_error(AbsSource, Extra, Desc) || Desc <- Descs])
|| {_, Descs} <- Errors].
format_error(AbsSource, Extra, {Line, Mod, Desc}) ->
ErrorDesc = Mod:format_error(Desc),
?FMT("~s:~b: ~s~s", [AbsSource, Line, Extra, ErrorDesc]).

View file

@ -262,27 +262,15 @@ internal_erl_compile(Source, Config, Outdir, ErlOpts) ->
{ok, _Mod} ->
ok;
{ok, _Mod, Ws} ->
{ok, format_errors(Source, "Warning: ", Ws)};
{ok, rebar_base_compiler:format_warnings(Source, Ws)};
{error, Es, Ws} ->
{error, format_errors(Source, Es),
format_errors(Source, "Warning: ", Ws)}
{error, rebar_base_compiler:format_errors(Source, Es),
rebar_base_compiler:format_warnings(Source, Ws)}
end;
false ->
skipped
end.
format_errors(Source, Errors) ->
format_errors(Source, "", Errors).
format_errors(Source, Extra, Errors) ->
AbsSource = filename:absname(Source),
[lists:append([format_error(AbsSource, Extra, Desc) || Desc <- Descs])
|| {_, Descs} <- Errors].
format_error(AbsSource, Extra, {Line, Mod, Desc}) ->
ErrorDesc = Mod:format_error(Desc),
?FMT("~s:~b: ~s~s", [AbsSource, Line, Extra, ErrorDesc]).
-spec compile_mib(Source::file:filename(), Target::file:filename(),
Config::rebar_config:config()) -> 'ok'.
compile_mib(Source, Target, Config) ->
@ -322,10 +310,10 @@ compile_xrl_yrl(Source, Target, Opts, Mod) ->
{ok, _} ->
ok;
{ok, _Mod, Ws} ->
{ok, format_errors(Source, "Warning: ", Ws)};
{ok, rebar_base_compiler:format_warnings(Source, Ws)};
{error, Es, Ws} ->
{error, format_errors(Source, Es),
format_errors(Source, "Warning: ", Ws)}
{error, rebar_base_compiler:format_errors(Source, Es),
rebar_base_compiler:format_warnings(Source, Ws)}
end;
false ->
skipped