mirror of
https://github.com/correl/rebar.git
synced 2024-12-18 03:00:17 +00:00
Delete existing erl files in ?EUNIT_DIR
Before copying the .erl files to the .eunit directory ensure that they are deleted if they already exist. This prevents EACCES errors to happen when trying to re-copy .erl files that are read-only.
This commit is contained in:
parent
41d6abc64d
commit
b498e86ef7
1 changed files with 21 additions and 0 deletions
|
@ -85,6 +85,27 @@ eunit(Config, _AppFile) ->
|
||||||
%% in src but in a subdirectory of src. Cover only looks in cwd and ../src
|
%% in src but in a subdirectory of src. Cover only looks in cwd and ../src
|
||||||
%% for source files.
|
%% for source files.
|
||||||
SrcErls = rebar_utils:find_files("src", ".*\\.erl\$"),
|
SrcErls = rebar_utils:find_files("src", ".*\\.erl\$"),
|
||||||
|
|
||||||
|
%% If it is not the first time rebar eunit is executed, there will be source
|
||||||
|
%% files already present in ?EUNIT_DIR. Since some SCMs (like Perforce) set
|
||||||
|
%% the source files as being read only (unless they are checked out), we
|
||||||
|
%% need to be sure that the files already present in ?EUNIT_DIR are writable
|
||||||
|
%% before doing the copy. This is done here by removing any file that was
|
||||||
|
%% already present before calling rebar_file_utils:cp_r.
|
||||||
|
|
||||||
|
%% Get the full path to a file that was previously copied in ?EUNIT_DIR
|
||||||
|
ToCleanUp = fun(F, Acc) ->
|
||||||
|
F2 = filename:basename(F),
|
||||||
|
F3 = filename:join([?EUNIT_DIR, F2]),
|
||||||
|
case filelib:is_regular(F3) of
|
||||||
|
true -> [F3|Acc];
|
||||||
|
false -> Acc
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
ok = rebar_file_utils:delete_each(lists:foldl(ToCleanUp, [], TestErls)),
|
||||||
|
ok = rebar_file_utils:delete_each(lists:foldl(ToCleanUp, [], SrcErls)),
|
||||||
|
|
||||||
ok = rebar_file_utils:cp_r(SrcErls ++ TestErls, ?EUNIT_DIR),
|
ok = rebar_file_utils:cp_r(SrcErls ++ TestErls, ?EUNIT_DIR),
|
||||||
|
|
||||||
%% Compile erlang code to ?EUNIT_DIR, using a tweaked config
|
%% Compile erlang code to ?EUNIT_DIR, using a tweaked config
|
||||||
|
|
Loading…
Reference in a new issue