summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2015-05-09 12:32:55 -0400
committerFred Hebert <mononcqc@ferd.ca>2015-05-09 12:32:55 -0400
commitb904c5b57a4dbe393009da0bc6720c2a78a310e1 (patch)
tree3d083b6451b75de9cdbf1516bf76d20fbac50731
parent671617f03e0915a62eaf630119bae32e92112e02 (diff)
parenta41fbf6cfef9f57cd2db64526e52414948049574 (diff)
Merge pull request #407 from tsloughter/plugins2
add all plugins, not those just built, to path
-rw-r--r--src/rebar_api.erl6
-rw-r--r--src/rebar_plugins.erl4
2 files changed, 7 insertions, 3 deletions
diff --git a/src/rebar_api.erl b/src/rebar_api.erl
index 88c7538..45083df 100644
--- a/src/rebar_api.erl
+++ b/src/rebar_api.erl
@@ -10,7 +10,8 @@
get_arch/0,
wordsize/0,
add_deps_to_path/1,
- restore_code_path/1]).
+ restore_code_path/1,
+ processing_base_dir/1]).
-export_type([rebar_dict/0, rebar_digraph/0]).
@@ -59,3 +60,6 @@ add_deps_to_path(State) ->
%% Revert to only having the beams necessary for running rebar3 and plugins in the path
restore_code_path(State) ->
rebar_utils:cleanup_code_path(rebar_state:code_paths(State, default)).
+
+processing_base_dir(State) ->
+ rebar_dir:processing_base_dir(State).
diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl
index 02e8f4e..c16223e 100644
--- a/src/rebar_plugins.erl
+++ b/src/rebar_plugins.erl
@@ -42,6 +42,7 @@ handle_plugin(Plugin, State) ->
Apps = rebar_state:all_deps(State2),
ToBuild = lists:dropwhile(fun rebar_app_info:valid/1, Apps),
[build_plugin(AppInfo) || AppInfo <- ToBuild],
+ [true = code:add_patha(filename:join(rebar_app_info:dir(AppInfo), "ebin")) || AppInfo <- Apps],
plugin_providers(Plugin)
catch
C:T ->
@@ -54,8 +55,7 @@ build_plugin(AppInfo) ->
AppDir = rebar_app_info:dir(AppInfo),
C = rebar_config:consult(AppDir),
S = rebar_state:new(rebar_state:new(), C, AppDir),
- rebar_prv_compile:compile(S, AppInfo),
- true = code:add_patha(filename:join(AppDir, "ebin")).
+ rebar_prv_compile:compile(S, AppInfo).
plugin_providers({Plugin, _, _}) when is_atom(Plugin) ->
validate_plugin(Plugin);