Current section
Files
Jump to
Current section
Files
src/mix_covertool.erl
-module(mix_covertool).
%% mix plugin callbacks
-export([start/2]).
-include("covertool.hrl").
%% ===================================================================
%% Mix plugin callbacks
%% ===================================================================
start( CompilePath, _Opts ) ->
_ = cover:start(),
case cover:compile_beam_directory(binary:bin_to_list(CompilePath)) of
Results when is_list(Results) ->
ok;
{error, _} ->
mix(raise, <<"Failed to cover compile directory">>)
end,
AppName = proplists:get_value(app, mix_project(config)),
BeamDir = binary:bin_to_list(mix_project(compile_path)),
Config = #config{appname = AppName, beams = [BeamDir]},
fun() ->
covertool:generate_report(Config, cover:modules())
end.
%% ===================================================================
%% Mix helpers
%% ===================================================================
mix(Fun, Arg) ->
'Elixir.Mix':Fun(Arg).
mix_project(Fun) ->
'Elixir.Mix.Project':Fun().