summaryrefslogtreecommitdiff
path: root/src/rebar_prv_upgrade.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rebar_prv_upgrade.erl')
-rw-r--r--src/rebar_prv_upgrade.erl47
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.