diff options
author | Tristan Sloughter <tristan.sloughter@gmail.com> | 2015-04-04 21:13:24 -0500 |
---|---|---|
committer | Tristan Sloughter <tristan.sloughter@gmail.com> | 2015-04-04 21:13:24 -0500 |
commit | a99344a47066dd26b02cf34e84c15aa2f6f4dbe5 (patch) | |
tree | decea5eb0ec74ce37a2a62d012b36d139b483bad /src/rebar_prv_help.erl | |
parent | d95da874cd9831f238e0c91c74b32ff4549dba59 (diff) | |
parent | 60f7474632000aa052ee4d5cea2eb7fbc094cc74 (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.erl | 28 |
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. |