diff options
author | Tristan Sloughter <t@crashfast.com> | 2015-06-25 21:32:29 -0500 |
---|---|---|
committer | Tristan Sloughter <t@crashfast.com> | 2015-06-25 21:33:01 -0500 |
commit | b830c65ef0c66875dc1b525186542d3609cfe452 (patch) | |
tree | 9942f5329b84f9c441b243b3cda0fbec12c3e7fd /src | |
parent | c2209785f96b8de2fd3a77017a038711be2d6cc0 (diff) |
check global for plugin if not found in local profiles
Diffstat (limited to 'src')
-rw-r--r-- | src/rebar_prv_plugins_upgrade.erl | 26 |
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]) -> |