Selaa lähdekoodia

Merge pull request #544 from tsloughter/no_plugin_upgrade

error message when no plugin is passed to plugins upgrade and global upgrade
pull/545/head
Fred Hebert 9 vuotta sitten
vanhempi
commit
ed0b8fca45
1 muutettua tiedostoa jossa 25 lisäystä ja 11 poistoa
  1. +25
    -11
      src/rebar_prv_plugins_upgrade.erl

+ 25
- 11
src/rebar_prv_plugins_upgrade.erl Näytä tiedosto

@ -33,10 +33,16 @@ init(State) ->
-spec do(rebar_state:t()) -> {ok, rebar_state:t()} | {error, string()}.
do(State) ->
{Args, _} = rebar_state:command_parsed_args(State),
Plugin = proplists:get_value(plugin, Args, <<"">>),
upgrade(Plugin, State).
case proplists:get_value(plugin, Args, none) of
none ->
?PRV_ERROR(no_plugin_arg);
Plugin ->
upgrade(Plugin, State)
end.
-spec format_error(any()) -> iolist().
format_error(no_plugin_arg) ->
io_lib:format("Must give an installed plugin to upgrade as an argument", []);
format_error({not_found, Plugin}) ->
io_lib:format("Plugin to upgrade not found: ~s", [Plugin]);
format_error(Reason) ->
@ -44,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 ->
@ -76,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]) ->

Ladataan…
Peruuta
Tallenna