summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTuncer Ayaz <tuncer.ayaz@gmail.com>2012-06-05 21:02:14 +0200
committerTuncer Ayaz <tuncer.ayaz@gmail.com>2012-06-11 19:42:00 +0200
commit8a2274b8b4b060c3de03db682796b48d903804e2 (patch)
tree23192d16ee92b5a8db201d036afafca804b1a7df /src
parent0716cf708ca3d3d61d2435b88e6d68410a49db6e (diff)
Refactor shared error reporting code
Diffstat (limited to 'src')
-rw-r--r--src/rebar_base_compiler.erl30
-rw-r--r--src/rebar_erlc_compiler.erl10
-rw-r--r--src/rebar_lfe_compiler.erl5
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