mirror of
https://github.com/correl/rebar.git
synced 2024-12-24 11:50:52 +00:00
Add rebar_utils:find_files_by_ext/2,3
This finds files by extension, avoiding resource fork files in Mac OS X.
This commit is contained in:
parent
83156cc1ef
commit
a04530124f
1 changed files with 24 additions and 0 deletions
|
@ -34,6 +34,8 @@
|
|||
sh_send/3,
|
||||
find_files/2,
|
||||
find_files/3,
|
||||
find_files_by_ext/2,
|
||||
find_files_by_ext/3,
|
||||
now_str/0,
|
||||
ensure_dir/1,
|
||||
beam_to_mod/2,
|
||||
|
@ -160,6 +162,28 @@ find_files(Dir, Regex, Recursive) ->
|
|||
filelib:fold_files(Dir, Regex, Recursive,
|
||||
fun(F, Acc) -> [F | Acc] end, []).
|
||||
|
||||
%% Find files by extension, for example ".erl", avoiding resource fork
|
||||
%% files in OS X. Such files are named for example src/._xyz.erl
|
||||
%% Such files may also appear with network filesystems on OS X.
|
||||
%%
|
||||
%% The Ext is really a regexp, with any leading dot implicitly
|
||||
%% escaped, and anchored at the end of the string.
|
||||
%%
|
||||
find_files_by_ext(Dir, Ext) ->
|
||||
find_files_by_ext(Dir, Ext, true).
|
||||
|
||||
find_files_by_ext(Dir, Ext, Recursive) ->
|
||||
%% Convert simple extension to proper regex
|
||||
EscapeDot = case Ext of
|
||||
"." ++ _ ->
|
||||
"\\";
|
||||
_ ->
|
||||
%% allow for other suffixes, such as _pb.erl
|
||||
""
|
||||
end,
|
||||
ExtRe = "^[^._].*" ++ EscapeDot ++ Ext ++ [$$],
|
||||
find_files(Dir, ExtRe, Recursive).
|
||||
|
||||
now_str() ->
|
||||
{{Year, Month, Day}, {Hour, Minute, Second}} = calendar:local_time(),
|
||||
lists:flatten(io_lib:format("~4b/~2..0b/~2..0b ~2..0b:~2..0b:~2..0b",
|
||||
|
|
Loading…
Reference in a new issue