diff options
author | Tristan Sloughter <t@crashfast.com> | 2016-03-19 13:12:32 -0500 |
---|---|---|
committer | Tristan Sloughter <t@crashfast.com> | 2016-03-19 13:12:32 -0500 |
commit | 8698299e20f0353339e92d357ee98d86a6098460 (patch) | |
tree | 9bb293636260a5f6f9ca56a2984d324a1eb73086 /src | |
parent | 4e81c84fa0c0094cf1bb2ac0231ba8ebb5d99db0 (diff) | |
parent | e9dcaeee6dd9089f76d91f083d82c545de6f0720 (diff) |
Merge pull request #1126 from ferd/single-entry-pkgs
Allow 'rebar3 pkgs <app>' to return only that app
Diffstat (limited to 'src')
-rw-r--r-- | src/rebar_prv_packages.erl | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/rebar_prv_packages.erl b/src/rebar_prv_packages.erl index 998320c..7217ab8 100644 --- a/src/rebar_prv_packages.erl +++ b/src/rebar_prv_packages.erl @@ -28,22 +28,19 @@ init(State) -> -spec do(rebar_state:t()) -> {ok, rebar_state:t()} | {error, string()}. do(State) -> rebar_packages:packages(State), - print_packages(), + case rebar_state:command_args(State) of + [Name] -> + print_packages(get_packages(iolist_to_binary(Name))); + _ -> + print_packages(sort_packages()) + end, {ok, State}. -spec format_error(any()) -> iolist(). format_error(load_registry_fail) -> "Failed to load package regsitry. Try running 'rebar3 update' to fix". -print_packages() -> - SortedPkgs = ets:foldl(fun({package_index_version, _}, Acc) -> - Acc; - ({Pkg, Vsns}, Acc) -> - orddict:store(Pkg, Vsns, Acc); - (_, Acc) -> - Acc - end, orddict:new(), ?PACKAGE_TABLE), - +print_packages(Pkgs) -> orddict:map(fun(Name, Vsns) -> SortedVsns = lists:sort(fun(A, B) -> ec_semver:lte(ec_semver:parse(A) @@ -51,7 +48,20 @@ print_packages() -> end, Vsns), VsnStr = join(SortedVsns, <<", ">>), ?CONSOLE("~s:~n Versions: ~s~n", [Name, VsnStr]) - end, SortedPkgs). + end, Pkgs). + +sort_packages() -> + ets:foldl(fun({package_index_version, _}, Acc) -> + Acc; + ({Pkg, Vsns}, Acc) -> + orddict:store(Pkg, Vsns, Acc); + (_, Acc) -> + Acc + end, orddict:new(), ?PACKAGE_TABLE). + +get_packages(Name) -> + ets:lookup(?PACKAGE_TABLE, Name). + -spec join([binary()], binary()) -> binary(). join([Bin], _Sep) -> |