mirror of
https://github.com/correl/rebar.git
synced 2024-11-14 11:09:35 +00:00
Merge pull request #299 from tuncer/rok-resource-forks
Fix OS X resource fork handling (Reported-by: Richard O'Keefe)
This commit is contained in:
commit
19c215ee9f
9 changed files with 28 additions and 16 deletions
|
@ -47,7 +47,9 @@ main(Args) ->
|
|||
end,
|
||||
|
||||
%% Compile all src/*.erl to ebin
|
||||
case make:files(filelib:wildcard("src/*.erl"),
|
||||
%% To not accidentally try to compile files like Mac OS X resource forks,
|
||||
%% we only look for rebar source files that start with a letter.
|
||||
case make:files(filelib:wildcard("src/[a-zA-Z]*.erl"),
|
||||
[{outdir, "ebin"}, {i, "include"},
|
||||
DebugFlag,
|
||||
NamespacedTypes,
|
||||
|
|
4
inttest/erlc/src/._do_not_compile.erl
Normal file
4
inttest/erlc/src/._do_not_compile.erl
Normal file
|
@ -0,0 +1,4 @@
|
|||
syntax error
|
||||
this is file is here to verify that rebar does not try to
|
||||
compile files like OS X resource forks and should not be
|
||||
processed at all
|
|
@ -70,7 +70,7 @@
|
|||
|
||||
%% Get a list of any appup files that exist in the new release
|
||||
NewAppUpFiles = rebar_utils:find_files(
|
||||
filename:join([NewVerPath, "lib"]), "^.*.appup$"),
|
||||
filename:join([NewVerPath, "lib"]), "^[^._].*.appup$"),
|
||||
|
||||
%% Convert the list of appup files into app names
|
||||
AppUpApps = [file_to_name(File) || File <- NewAppUpFiles],
|
||||
|
|
|
@ -28,8 +28,11 @@
|
|||
|
||||
-include("rebar.hrl").
|
||||
|
||||
-export([run/4, run/7, run/8,
|
||||
ok_tuple/3, error_tuple/5]).
|
||||
-export([run/4,
|
||||
run/7,
|
||||
run/8,
|
||||
ok_tuple/3,
|
||||
error_tuple/5]).
|
||||
|
||||
%% ===================================================================
|
||||
%% Public API
|
||||
|
@ -60,7 +63,7 @@ run(Config, FirstFiles, SourceDir, SourceExt, TargetDir, TargetExt,
|
|||
run(Config, FirstFiles, SourceDir, SourceExt, TargetDir, TargetExt,
|
||||
Compile3Fn, Opts) ->
|
||||
%% Convert simple extension to proper regex
|
||||
SourceExtRe = ".*\\" ++ SourceExt ++ [$$],
|
||||
SourceExtRe = "^[^._].*\\" ++ SourceExt ++ [$$],
|
||||
|
||||
Recursive = proplists:get_value(recursive, Opts, true),
|
||||
%% Find all possible source files
|
||||
|
|
|
@ -593,8 +593,7 @@ load_plugin_modules(Config, PredirsAssoc, Modules) ->
|
|||
?DEBUG("Plugin dirs for ~s:~n~p~n", [Cwd, PluginDirs]),
|
||||
|
||||
%% Find relevant sources in base_dir and plugin_dir
|
||||
Erls = string:join([atom_to_list(M)++"\\.erl" || M <- Modules], "|"),
|
||||
RE = "^" ++ Erls ++ "\$",
|
||||
RE = string:join([atom_to_list(M)++"\\.erl" || M <- Modules], "|"),
|
||||
%% If a plugin is found both in base_dir and plugin_dir, the clash
|
||||
%% will provoke an error and we'll abort.
|
||||
Sources = [rebar_utils:find_files(PD, RE, false) || PD <- PluginDirs],
|
||||
|
|
|
@ -47,6 +47,8 @@
|
|||
info = {[], []} :: erlc_info()
|
||||
}).
|
||||
|
||||
-define(RE_PREFIX, "^[^._]").
|
||||
|
||||
-ifdef(namespaced_types).
|
||||
%% digraph:graph() exists starting from Erlang 17.
|
||||
-type rebar_digraph() :: digraph:graph().
|
||||
|
@ -110,14 +112,14 @@ compile(Config, _AppFile) ->
|
|||
|
||||
-spec clean(rebar_config:config(), file:filename()) -> 'ok'.
|
||||
clean(Config, _AppFile) ->
|
||||
MibFiles = rebar_utils:find_files("mibs", "^.*\\.mib\$"),
|
||||
MibFiles = rebar_utils:find_files("mibs", ?RE_PREFIX".*\\.mib\$"),
|
||||
MIBs = [filename:rootname(filename:basename(MIB)) || MIB <- MibFiles],
|
||||
rebar_file_utils:delete_each(
|
||||
[filename:join(["include",MIB++".hrl"]) || MIB <- MIBs]),
|
||||
lists:foreach(fun(F) -> ok = rebar_file_utils:rm_rf(F) end,
|
||||
["ebin/*.beam", "priv/mibs/*.bin"]),
|
||||
|
||||
YrlFiles = rebar_utils:find_files("src", "^.*\\.[x|y]rl\$"),
|
||||
YrlFiles = rebar_utils:find_files("src", ?RE_PREFIX".*\\.[x|y]rl\$"),
|
||||
rebar_file_utils:delete_each(
|
||||
[ binary_to_list(iolist_to_binary(re:replace(F, "\\.[x|y]rl$", ".erl")))
|
||||
|| F <- YrlFiles ]),
|
||||
|
@ -129,7 +131,7 @@ clean(Config, _AppFile) ->
|
|||
%% directory structure in ebin with .beam files within. As such, we want
|
||||
%% to scan whatever is left in the ebin/ directory for sub-dirs which
|
||||
%% satisfy our criteria.
|
||||
BeamFiles = rebar_utils:find_files("ebin", "^.*\\.beam\$"),
|
||||
BeamFiles = rebar_utils:find_files("ebin", ?RE_PREFIX".*\\.beam\$"),
|
||||
rebar_file_utils:delete_each(BeamFiles),
|
||||
lists:foreach(fun(Dir) -> delete_dir(Dir, dirs(Dir)) end, dirs("ebin")),
|
||||
ok.
|
||||
|
@ -140,7 +142,7 @@ clean(Config, _AppFile) ->
|
|||
|
||||
test_compile(Config, Cmd, OutDir) ->
|
||||
%% Obtain all the test modules for inclusion in the compile stage.
|
||||
TestErls = rebar_utils:find_files("test", ".*\\.erl\$"),
|
||||
TestErls = rebar_utils:find_files("test", ?RE_PREFIX".*\\.erl\$"),
|
||||
|
||||
ErlOpts = rebar_utils:erl_opts(Config),
|
||||
{Config1, ErlOpts1} = test_compile_config_and_opts(Config, ErlOpts, Cmd),
|
||||
|
@ -151,7 +153,8 @@ test_compile(Config, Cmd, OutDir) ->
|
|||
SrcDirs = rebar_utils:src_dirs(proplists:append_values(src_dirs, ErlOpts1)),
|
||||
SrcErls = lists:foldl(
|
||||
fun(Dir, Acc) ->
|
||||
Files = rebar_utils:find_files(Dir, ".*\\.erl\$"),
|
||||
Files = rebar_utils:find_files(
|
||||
Dir, ?RE_PREFIX".*\\.erl\$"),
|
||||
lists:append(Acc, Files)
|
||||
end, [], SrcDirs),
|
||||
|
||||
|
@ -645,7 +648,8 @@ compile_xrl_yrl(Config, Source, Target, Opts, Mod) ->
|
|||
gather_src([], Srcs) ->
|
||||
Srcs;
|
||||
gather_src([Dir|Rest], Srcs) ->
|
||||
gather_src(Rest, Srcs ++ rebar_utils:find_files(Dir, ".*\\.erl\$")).
|
||||
gather_src(
|
||||
Rest, Srcs ++ rebar_utils:find_files(Dir, ?RE_PREFIX".*\\.erl\$")).
|
||||
|
||||
-spec dirs(file:filename()) -> [file:filename()].
|
||||
dirs(Dir) ->
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
%% ===================================================================
|
||||
|
||||
compile(Config, _AppFile) ->
|
||||
case rebar_utils:find_files("src", ".*\\.proto$") of
|
||||
case rebar_utils:find_files("src", "^[^._].*\\.proto$") of
|
||||
[] ->
|
||||
ok;
|
||||
FoundFiles ->
|
||||
|
|
|
@ -208,7 +208,7 @@ qc_module(QC=eqc, [], M) -> QC:module(M);
|
|||
qc_module(QC=eqc, QCOpts, M) -> QC:module(QCOpts, M).
|
||||
|
||||
find_prop_mods() ->
|
||||
Beams = rebar_utils:find_files(?QC_DIR, ".*\\.beam\$"),
|
||||
Beams = rebar_utils:find_files(?QC_DIR, "^[^._].*\\.beam\$"),
|
||||
[M || M <- [rebar_utils:erl_to_mod(Beam) || Beam <- Beams], has_prop(M)].
|
||||
|
||||
has_prop(Mod) ->
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
-include("rebar.hrl").
|
||||
|
||||
-define(TEMPLATE_RE, ".*\\.template\$").
|
||||
-define(TEMPLATE_RE, "^[^._].*\\.template\$").
|
||||
|
||||
%% ===================================================================
|
||||
%% Public API
|
||||
|
|
Loading…
Reference in a new issue