summaryrefslogtreecommitdiff
path: root/src/rebar_core.erl
diff options
context:
space:
mode:
authorDave Smith <dizzyd@dizzyd.com>2013-10-14 15:09:03 -0700
committerDave Smith <dizzyd@dizzyd.com>2013-10-14 15:09:03 -0700
commited88055a750736c5c9807ca4da4803ff8a6aef16 (patch)
tree5dd2dcdd8abb6452fc1d6090b2df3cc6cb37b1d8 /src/rebar_core.erl
parent179ed48f5b5262005dd4c8f0cf5730fc0e01afcd (diff)
parent2b3edc27010b5e5d4313a51789f6488280d76699 (diff)
Merge pull request #142 from Vagabond/adt-update-deps
Make update-deps traverse deps breadth-first, top-down
Diffstat (limited to 'src/rebar_core.erl')
-rw-r--r--src/rebar_core.erl10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/rebar_core.erl b/src/rebar_core.erl
index fcfa62a..4d50f4f 100644
--- a/src/rebar_core.erl
+++ b/src/rebar_core.erl
@@ -163,6 +163,13 @@ skip_or_process_dir({_, ModuleSetFile}=ModuleSet, Config, CurrentCodePath,
skip_or_process_dir1(AppFile, ModuleSet, Config, CurrentCodePath,
Dir, Command, DirSet) ->
case rebar_app_utils:is_skipped_app(Config, AppFile) of
+ {Config1, {true, _SkippedApp}} when Command == 'update-deps' ->
+ %% update-deps does its own app skipping. Unfortunately there's no
+ %% way to signal this to rebar_core, so we have to explicitly do it
+ %% here... Otherwise if you use app=, it'll skip the toplevel
+ %% directory and nothing will be updated.
+ process_dir1(Dir, Command, DirSet, Config1,
+ CurrentCodePath, ModuleSet);
{Config1, {true, SkippedApp}} ->
?DEBUG("Skipping app: ~p~n", [SkippedApp]),
Config2 = increment_operations(Config1),
@@ -172,8 +179,9 @@ skip_or_process_dir1(AppFile, ModuleSet, Config, CurrentCodePath,
CurrentCodePath, ModuleSet)
end.
-process_dir1(Dir, Command, DirSet, Config0, CurrentCodePath,
+process_dir1(Dir, Command, DirSet, Config, CurrentCodePath,
{DirModules, ModuleSetFile}) ->
+ Config0 = rebar_config:set(Config, current_command, Command),
%% Get the list of modules for "any dir". This is a catch-all list
%% of modules that are processed in addition to modules associated
%% with this directory type. These any_dir modules are processed