diff options
Diffstat (limited to 'src/rebar_prv_upgrade.erl')
| -rw-r--r-- | src/rebar_prv_upgrade.erl | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/src/rebar_prv_upgrade.erl b/src/rebar_prv_upgrade.erl index 1c6abf7..cbeec98 100644 --- a/src/rebar_prv_upgrade.erl +++ b/src/rebar_prv_upgrade.erl @@ -19,31 +19,32 @@ -spec init(rebar_state:t()) -> {ok, rebar_state:t()}. init(State) -> - State1 = rebar_state:add_provider(State, providers:create([{name, ?PROVIDER}, - {module, ?MODULE}, - {bare, false}, - {deps, ?DEPS}, - {example, "rebar upgrade cowboy"}, - {short_desc, "Upgrade dependency."}, - {desc, ""}, - {opts, []}])), + State1 = + rebar_state:add_provider(State, + providers:create([{name, ?PROVIDER}, + {module, ?MODULE}, + {bare, false}, + {deps, ?DEPS}, + {example, "rebar upgrade cowboy"}, + {short_desc, "Upgrade dependency."}, + {desc, ""}, + {opts, [ + {package, undefined, undefined, string, "Package to upgrade."} + ]}])), {ok, State1}. -spec do(rebar_state:t()) -> {ok, rebar_state:t()} | {error, string()}. do(State) -> - case rebar_state:command_args(State) of - [Name] -> - ?INFO("Updating ~s~n", [Name]), - Locks = rebar_state:get(State, locks, []), - case lists:keyfind(ec_cnv:to_binary(Name), 1, Locks) of - {_, _, _, Level} -> - Deps = rebar_state:get(State, deps), - Dep = lists:keyfind(list_to_atom(Name), 1, Deps), - rebar_prv_install_deps:handle_deps(State, [Dep], {true, ec_cnv:to_binary(Name), Level}), - {ok, State}; - false -> - {error, io_lib:format("No such dependency ~s~n", [Name])} - end; - [] -> - {error, "No package given to upgrade."} + {Args, _} = rebar_state:command_parsed_args(State), + Name = proplists:get_value(package, Args), + ?INFO("Updating ~s~n", [Name]), + Locks = rebar_state:get(State, locks, []), + case lists:keyfind(ec_cnv:to_binary(Name), 1, Locks) of + {_, _, _, Level} -> + Deps = rebar_state:get(State, deps), + Dep = lists:keyfind(list_to_atom(Name), 1, Deps), + rebar_prv_install_deps:handle_deps(State, [Dep], {true, ec_cnv:to_binary(Name), Level}), + {ok, State}; + _ -> + {error, io_lib:format("No such dependency ~s~n", [Name])} end. |
