summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Sloughter <t@crashfast.com>2015-06-25 21:32:29 -0500
committerTristan Sloughter <t@crashfast.com>2015-06-25 21:33:01 -0500
commitb830c65ef0c66875dc1b525186542d3609cfe452 (patch)
tree9942f5329b84f9c441b243b3cda0fbec12c3e7fd
parentc2209785f96b8de2fd3a77017a038711be2d6cc0 (diff)
check global for plugin if not found in local profiles
-rw-r--r--src/rebar_prv_plugins_upgrade.erl26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/rebar_prv_plugins_upgrade.erl b/src/rebar_prv_plugins_upgrade.erl
index c80dffc..5ccd054 100644
--- a/src/rebar_prv_plugins_upgrade.erl
+++ b/src/rebar_prv_plugins_upgrade.erl
@@ -50,15 +50,12 @@ format_error(Reason) ->
upgrade(Plugin, State) ->
Profiles = rebar_state:current_profiles(State),
- Dep = ec_lists:search(fun(Profile) ->
- Plugins = rebar_state:get(State, {plugins, Profile}, []),
- case find(list_to_atom(Plugin), Plugins) of
- false ->
- not_found;
- P ->
- {ok, P}
- end
- end, Profiles),
+ case find_plugin(Plugin, Profiles, State) of
+ not_found ->
+ Dep = find_plugin(Plugin, [global], State);
+ Dep ->
+ Dep
+ end,
case Dep of
not_found ->
@@ -82,6 +79,17 @@ upgrade(Plugin, State) ->
{ok, State}
end.
+find_plugin(Plugin, Profiles, State) ->
+ ec_lists:search(fun(Profile) ->
+ Plugins = rebar_state:get(State, {plugins, Profile}, []),
+ case find(list_to_atom(Plugin), Plugins) of
+ false ->
+ not_found;
+ P ->
+ {ok, P}
+ end
+ end, Profiles).
+
find(_Plugin, []) ->
false;
find(Plugin, [Plugin | _Plugins]) ->