summaryrefslogtreecommitdiff
path: root/src/rebar_prv_packages.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rebar_prv_packages.erl')
-rw-r--r--src/rebar_prv_packages.erl18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/rebar_prv_packages.erl b/src/rebar_prv_packages.erl
index 880d4a6..5b8ea66 100644
--- a/src/rebar_prv_packages.erl
+++ b/src/rebar_prv_packages.erl
@@ -27,19 +27,21 @@ init(State) ->
-spec do(rebar_state:t()) -> {ok, rebar_state:t()} | {error, string()}.
do(State) ->
- {Dict, _} = rebar_packages:get_packages(State),
- print_packages(Dict),
+ print_packages(),
{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(Dict) ->
- Pkgs = lists:keysort(1, dict:fetch_keys(Dict)),
- SortedPkgs = lists:foldl(fun({Pkg, Vsn}, Acc) ->
- orddict:append_list(Pkg, [Vsn], Acc)
- end, orddict:new(), Pkgs),
+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),
orddict:map(fun(Name, Vsns) ->
SortedVsns = lists:sort(fun(A, B) ->
@@ -47,7 +49,7 @@ print_packages(Dict) ->
,ec_semver:parse(B))
end, Vsns),
VsnStr = join(SortedVsns, <<", ">>),
- io:format("~s:~n Versions: ~s~n~n", [Name, VsnStr])
+ ?CONSOLE("~s:~n Versions: ~s~n", [Name, VsnStr])
end, SortedPkgs).
-spec join([binary()], binary()) -> binary().