summaryrefslogtreecommitdiff
path: root/src/rebar_prv_path.erl
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2016-03-19 13:14:11 -0400
committerFred Hebert <mononcqc@ferd.ca>2016-03-19 13:17:56 -0400
commit9d01c45aeb56f4ec09e86c64b9f2969d04f590c2 (patch)
treed24b06ed25c0031543e0fc2f22c45dbad119d711 /src/rebar_prv_path.erl
parent7d29b74a221ef082e4bbee496019c8f1612e8f0b (diff)
Support all deps & locks in rebar3 path
By default, the dependency only handled versioned packages and top-level source dependencies, and locks were being ignored. This patch makes it so locks and package deps are being considered, generating full-blown path lists. Should fix #1117
Diffstat (limited to 'src/rebar_prv_path.erl')
-rw-r--r--src/rebar_prv_path.erl8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rebar_prv_path.erl b/src/rebar_prv_path.erl
index 37c9834..4e88496 100644
--- a/src/rebar_prv_path.erl
+++ b/src/rebar_prv_path.erl
@@ -95,10 +95,14 @@ print_paths_if_exist(Paths, State) ->
project_deps(State) ->
Profiles = rebar_state:current_profiles(State),
- List = lists:foldl(fun(Profile, Acc) -> rebar_state:get(State, {deps, Profile}, []) ++ Acc end, [], Profiles),
- Deps = [normalize(Name) || {Name, _} <- List],
+ DepList = lists:foldl(fun(Profile, Acc) -> rebar_state:get(State, {deps, Profile}, []) ++ Acc end, [], Profiles),
+ LockList = lists:foldl(fun(Profile, Acc) -> rebar_state:get(State, {locks, Profile}, []) ++ Acc end, [], Profiles),
+ Deps = [normalize(name(Dep)) || Dep <- DepList++LockList],
lists:usort(Deps).
+name(App) when is_tuple(App) -> element(1, App);
+name(Name) when is_binary(Name); is_list(Name); is_atom(Name) -> Name.
+
normalize(AppName) when is_list(AppName) -> AppName;
normalize(AppName) when is_atom(AppName) -> atom_to_list(AppName);
normalize(AppName) when is_binary(AppName) -> binary_to_list(AppName).