From 125ff06b7420a199c58533d82cc50bf18e040b05 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Thu, 9 Jul 2015 21:33:07 -0500 Subject: add tree option to deps command that prints pkg deps tree --- src/rebar_config.erl | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'src/rebar_config.erl') diff --git a/src/rebar_config.erl b/src/rebar_config.erl index d2b4a12..554b399 100644 --- a/src/rebar_config.erl +++ b/src/rebar_config.erl @@ -124,27 +124,37 @@ bs(Vars) -> %% Find deps that have been added to the config after the lock was created find_newly_added(ConfigDeps, LockedDeps) -> - rebar_utils:filtermap(fun(Dep) when is_tuple(Dep) -> - check_newly_added(element(1, Dep), LockedDeps); - (Dep) -> - check_newly_added(Dep, LockedDeps) - end, ConfigDeps). - -check_newly_added(Dep, LockedDeps) when is_atom(Dep) -> - NewDep = ec_cnv:to_binary(Dep), - case lists:keyfind(NewDep, 1, LockedDeps) of + [D || {true, D} <- [check_newly_added(Dep, LockedDeps) || Dep <- ConfigDeps]]. + +check_newly_added({_, _}=Dep, LockedDeps) -> + check_newly_added_(Dep, LockedDeps); +check_newly_added({Name, _, Source}, LockedDeps) -> + check_newly_added_({Name, Source}, LockedDeps); +check_newly_added(Dep, LockedDeps) -> + check_newly_added_(Dep, LockedDeps). + +check_newly_added_({Name, Source}, LockedDeps) -> + case check_newly_added_(Name, LockedDeps) of + {true, Name1} -> + {true, {Name1, Source}}; false -> - true; + false + end; +check_newly_added_(Dep, LockedDeps) when is_atom(Dep) -> + Name = ec_cnv:to_binary(Dep), + case lists:keyfind(Name, 1, LockedDeps) of + false -> + {true, Name}; Match -> case element(3, Match) of 0 -> - true; + {true, Name}; _ -> ?WARN("Newly added dep ~s is locked at a lower level. " "If you really want to unlock it, use 'rebar3 upgrade ~s'", - [NewDep, NewDep]), + [Name, Name]), false end end; -check_newly_added(Dep, _) -> +check_newly_added_(Dep, _) -> throw(?PRV_ERROR({bad_dep_name, Dep})). -- cgit v1.1