summaryrefslogtreecommitdiff
path: root/src/rebar_packages.erl
diff options
context:
space:
mode:
authorTristan Sloughter <t@crashfast.com>2014-08-24 12:01:03 -0500
committerTristan Sloughter <t@crashfast.com>2014-08-24 12:01:03 -0500
commit4b31a20a61b89d2979816646f8feca806d419564 (patch)
treedd628be4acef39699121b2a68942bf16e0178f12 /src/rebar_packages.erl
parent9c6e20d3287e532946a518f1455be8d6ddcf6b14 (diff)
improved dep handling and add package list task
Diffstat (limited to 'src/rebar_packages.erl')
-rw-r--r--src/rebar_packages.erl23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/rebar_packages.erl b/src/rebar_packages.erl
new file mode 100644
index 0000000..103d3a3
--- /dev/null
+++ b/src/rebar_packages.erl
@@ -0,0 +1,23 @@
+-module(rebar_packages).
+
+-export([get_packages/1]).
+
+-include("rebar.hrl").
+
+-spec get_packages(rebar_state:t()) -> {list(), rlx_depsolver:t()}.
+get_packages(State) ->
+ RebarDir = rebar_state:get(State, global_rebar_dir, filename:join(os:getenv("HOME"), ".rebar")),
+ PackagesFile = filename:join(RebarDir, "packages"),
+ case ec_file:exists(PackagesFile) of
+ true ->
+ try
+ {ok, Binary} = file:read_file(PackagesFile),
+ binary_to_term(Binary)
+ catch
+ _:_ ->
+ ?ERROR("Bad packages index, try to fix with `rebar update`~n", []),
+ {[], rlx_depsolver:new()}
+ end;
+ false ->
+ {[], rlx_depsolver:new()}
+ end.