mirror of
https://github.com/correl/rebar.git
synced 2024-11-27 11:09:55 +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,
|
sh_send/3,
|
||||||
find_files/2,
|
find_files/2,
|
||||||
find_files/3,
|
find_files/3,
|
||||||
|
find_files_by_ext/2,
|
||||||
|
find_files_by_ext/3,
|
||||||
now_str/0,
|
now_str/0,
|
||||||
ensure_dir/1,
|
ensure_dir/1,
|
||||||
beam_to_mod/2,
|
beam_to_mod/2,
|
||||||
|
@ -160,6 +162,28 @@ find_files(Dir, Regex, Recursive) ->
|
||||||
filelib:fold_files(Dir, Regex, Recursive,
|
filelib:fold_files(Dir, Regex, Recursive,
|
||||||
fun(F, Acc) -> [F | Acc] end, []).
|
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() ->
|
now_str() ->
|
||||||
{{Year, Month, Day}, {Hour, Minute, Second}} = calendar:local_time(),
|
{{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",
|
lists:flatten(io_lib:format("~4b/~2..0b/~2..0b ~2..0b:~2..0b:~2..0b",
|
||||||
|
|
Loading…
Reference in a new issue