diff --git a/src/rebar_base_compiler.erl b/src/rebar_base_compiler.erl index 220cbd5..3939c97 100644 --- a/src/rebar_base_compiler.erl +++ b/src/rebar_base_compiler.erl @@ -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]). diff --git a/src/rebar_erlc_compiler.erl b/src/rebar_erlc_compiler.erl index 42fecc9..b3b5305 100644 --- a/src/rebar_erlc_compiler.erl +++ b/src/rebar_erlc_compiler.erl @@ -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