summaryrefslogtreecommitdiff
path: root/src/rebar_prv_help.erl
diff options
context:
space:
mode:
authorTristan Sloughter <tristan.sloughter@gmail.com>2015-04-04 21:13:24 -0500
committerTristan Sloughter <tristan.sloughter@gmail.com>2015-04-04 21:13:24 -0500
commita99344a47066dd26b02cf34e84c15aa2f6f4dbe5 (patch)
treedecea5eb0ec74ce37a2a62d012b36d139b483bad /src/rebar_prv_help.erl
parentd95da874cd9831f238e0c91c74b32ff4549dba59 (diff)
parent60f7474632000aa052ee4d5cea2eb7fbc094cc74 (diff)
Merge pull request #315 from ferd/fix-ns-help
Fix ns help
Diffstat (limited to 'src/rebar_prv_help.erl')
-rw-r--r--src/rebar_prv_help.erl28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/rebar_prv_help.erl b/src/rebar_prv_help.erl
index b450023..be5717f 100644
--- a/src/rebar_prv_help.erl
+++ b/src/rebar_prv_help.erl
@@ -34,20 +34,14 @@ init(State) ->
-spec do(rebar_state:t()) -> {ok, rebar_state:t()} | {error, string()}.
do(State) ->
- {Args, _} = rebar_state:command_parsed_args(State),
- case proplists:get_value(help_task, Args, undefined) of
- undefined ->
+ case rebar_state:command_args(State) of
+ [] ->
help(State),
{ok, State};
- Name ->
- Providers = rebar_state:providers(State),
- case providers:get_provider(list_to_atom(Name), Providers) of
- not_found ->
- {error, io_lib:format("Unknown task ~s", [Name])};
- Provider ->
- providers:help(Provider),
- {ok, State}
- end
+ [Name] -> % default namespace
+ task_help(default, list_to_atom(Name), State);
+ [Namespace, Name] ->
+ task_help(list_to_atom(Namespace), list_to_atom(Name), State)
end.
-spec format_error(any()) -> iolist().
@@ -66,3 +60,13 @@ help(State) ->
providers:help(rebar_state:providers(State)),
?CONSOLE("~nRun 'rebar3 help <TASK>' for details.~n~n", []).
+
+task_help(Namespace, Name, State) ->
+ Providers = rebar_state:providers(State),
+ case providers:get_provider(Name, Providers, Namespace) of
+ not_found ->
+ {error, io_lib:format("Unknown task ~p", [Name])};
+ Provider ->
+ providers:help(Provider),
+ {ok, State}
+ end.