From b830c65ef0c66875dc1b525186542d3609cfe452 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Thu, 25 Jun 2015 21:32:29 -0500 Subject: check global for plugin if not found in local profiles --- src/rebar_prv_plugins_upgrade.erl | 26 +++++++++++++++++--------- 1 file 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]) -> -- cgit v1.1