diff options
author | Tuncer Ayaz <tuncer.ayaz@gmail.com> | 2012-06-05 21:02:14 +0200 |
---|---|---|
committer | Tuncer Ayaz <tuncer.ayaz@gmail.com> | 2012-06-11 19:42:00 +0200 |
commit | 8a2274b8b4b060c3de03db682796b48d903804e2 (patch) | |
tree | 23192d16ee92b5a8db201d036afafca804b1a7df /src | |
parent | 0716cf708ca3d3d61d2435b88e6d68410a49db6e (diff) |
Refactor shared error reporting code
Diffstat (limited to 'src')
-rw-r--r-- | src/rebar_base_compiler.erl | 30 | ||||
-rw-r--r-- | src/rebar_erlc_compiler.erl | 10 | ||||
-rw-r--r-- | src/rebar_lfe_compiler.erl | 5 |
3 files changed, 24 insertions, 21 deletions
diff --git a/src/rebar_base_compiler.erl b/src/rebar_base_compiler.erl index dacb44d..6167e0e 100644 --- a/src/rebar_base_compiler.erl +++ b/src/rebar_base_compiler.erl @@ -29,7 +29,7 @@ -include("rebar.hrl"). -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) end). -format_errors(Source, Errors) -> - format_errors(Source, "", Errors). - -format_warnings(Source, Warnings) -> - format_warnings(Source, Warnings, []). +ok_tuple(Source, Ws) -> + {ok, format_warnings(Source, Ws)}. -format_warnings(Source, Warnings, Opts) -> - Prefix = case lists:member(warnings_as_errors, Opts) of - true -> ""; - false -> "Warning: " - end, - format_errors(Source, Prefix, Warnings). +error_tuple(Source, Es, Ws, Opts) -> + {error, format_errors(Source, Es), format_warnings(Source, Ws, Opts)}. %% =================================================================== %% Internal functions @@ -218,6 +211,19 @@ compile_worker(QueuePid, Config, CompileFn) -> ok 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(ErrorsAndWarnings); maybe_report({error, Es, Ws}) -> diff --git a/src/rebar_erlc_compiler.erl b/src/rebar_erlc_compiler.erl index 23b8963..7f5268d 100644 --- a/src/rebar_erlc_compiler.erl +++ b/src/rebar_erlc_compiler.erl @@ -262,10 +262,9 @@ internal_erl_compile(Source, Config, Outdir, ErlOpts) -> {ok, _Mod} -> ok; {ok, _Mod, Ws} -> - {ok, rebar_base_compiler:format_warnings(Source, Ws)}; + rebar_base_compiler:ok_tuple(Source, Ws); {error, Es, Ws} -> - {error, rebar_base_compiler:format_errors(Source, Es), - rebar_base_compiler:format_warnings(Source, Ws, Opts)} + rebar_base_compiler:error_tuple(Source, Es, Ws, Opts) end; false -> skipped @@ -310,10 +309,9 @@ compile_xrl_yrl(Source, Target, Opts, Mod) -> {ok, _} -> ok; {ok, _Mod, Ws} -> - {ok, rebar_base_compiler:format_warnings(Source, Ws)}; + rebar_base_compiler:ok_tuple(Source, Ws); {error, Es, Ws} -> - {error, rebar_base_compiler:format_errors(Source, Es), - rebar_base_compiler:format_warnings(Source, Ws, Opts)} + rebar_base_compiler:error_tuple(Source, Es, Ws, Opts) end; false -> skipped diff --git a/src/rebar_lfe_compiler.erl b/src/rebar_lfe_compiler.erl index 7d4f004..d688e9c 100644 --- a/src/rebar_lfe_compiler.erl +++ b/src/rebar_lfe_compiler.erl @@ -63,10 +63,9 @@ compile_lfe(Source, _Target, Config) -> ++ rebar_config:get_list(Config, erl_opts, []), case lfe_comp:file(Source, Opts) of {ok, _Mod, Ws} -> - {ok, rebar_base_compiler:format_warnings(Source, Ws)}; + rebar_base_compiler:ok_tuple(Source, Ws); {error, Es, Ws} -> - {error, rebar_base_compiler:format_errors(Source, Es), - rebar_base_compiler:format_warnings(Source, Ws, Opts)}; + rebar_base_compiler:error_tuple(Source, Es, Ws, Opts); _ -> ?ABORT end |