From d75ba02671236634906989f70eadc785658b4959 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Fri, 10 Apr 2015 22:31:01 -0500 Subject: support single atoms for pkg deps, fetch highest version available --- src/rebar_config.erl | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) (limited to 'src/rebar_config.erl') diff --git a/src/rebar_config.erl b/src/rebar_config.erl index c1c4381..97aea91 100644 --- a/src/rebar_config.erl +++ b/src/rebar_config.erl @@ -106,21 +106,25 @@ bs(Vars) -> %% Find deps that have been added to the config after the lock was created find_newly_added(ConfigDeps, LockedDeps) -> - [Dep || Dep <- ConfigDeps, - begin - NewDep = ec_cnv:to_binary(element(1, Dep)), - case lists:keyfind(NewDep, 1, LockedDeps) of - false -> - true; - Match -> - case element(3, Match) of - 0 -> - true; - _ -> - ?WARN("Newly added dep ~s is locked at a lower level. " - "If you really want to unlock it, use 'rebar3 upgrade ~s'", - [NewDep, NewDep]), - false - end - end - end]. + rebar_utils:filtermap(fun(Dep) when is_tuple(Dep) -> + check_dep(element(1, Dep), LockedDeps); + (Dep) -> + check_dep(Dep, LockedDeps) + end, ConfigDeps). + +check_dep(Dep, LockedDeps) -> + NewDep = ec_cnv:to_binary(Dep), + case lists:keyfind(NewDep, 1, LockedDeps) of + false -> + true; + Match -> + case element(3, Match) of + 0 -> + true; + _ -> + ?WARN("Newly added dep ~s is locked at a lower level. " + "If you really want to unlock it, use 'rebar3 upgrade ~s'", + [NewDep, NewDep]), + false + end + end. -- cgit v1.1 From ef22eeb387d08548e971a5698d01924ef12b6095 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sat, 11 Apr 2015 17:10:11 -0500 Subject: error on dep name that isn't an atom --- src/rebar_config.erl | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/rebar_config.erl') diff --git a/src/rebar_config.erl b/src/rebar_config.erl index 97aea91..5048ba3 100644 --- a/src/rebar_config.erl +++ b/src/rebar_config.erl @@ -28,10 +28,12 @@ -export([consult/1 ,consult_file/1 + ,format_error/1 ,merge_locks/2]). -include("rebar.hrl"). +-include_lib("providers/include/providers.hrl"). %% =================================================================== %% Public API @@ -77,6 +79,9 @@ merge_locks(Config, [Locks]) -> NewDeps = find_newly_added(ConfigDeps, Locks), [{{locks, default}, Locks}, {{deps, default}, NewDeps++Deps} | Config]. +format_error({bad_dep_name, Dep}) -> + io_lib:format("Dependency name must be an atom, instead found: ~p", [Dep]). + %% =================================================================== %% Internal functions %% =================================================================== @@ -107,12 +112,12 @@ 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_dep(element(1, Dep), LockedDeps); + check_newly_added(element(1, Dep), LockedDeps); (Dep) -> - check_dep(Dep, LockedDeps) + check_newly_added(Dep, LockedDeps) end, ConfigDeps). -check_dep(Dep, LockedDeps) -> +check_newly_added(Dep, LockedDeps) when is_atom(Dep) -> NewDep = ec_cnv:to_binary(Dep), case lists:keyfind(NewDep, 1, LockedDeps) of false -> @@ -127,4 +132,6 @@ check_dep(Dep, LockedDeps) -> [NewDep, NewDep]), false end - end. + end; +check_newly_added(Dep, _) -> + throw(?PRV_ERROR({bad_dep_name, Dep})). -- cgit v1.1 From d317869a3e3234510d3b2edc756caeff4cc1d515 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sat, 11 Apr 2015 17:14:11 -0500 Subject: clean ups from Fred's comments --- src/rebar_config.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/rebar_config.erl') diff --git a/src/rebar_config.erl b/src/rebar_config.erl index 5048ba3..76e03ea 100644 --- a/src/rebar_config.erl +++ b/src/rebar_config.erl @@ -128,8 +128,8 @@ check_newly_added(Dep, LockedDeps) when is_atom(Dep) -> true; _ -> ?WARN("Newly added dep ~s is locked at a lower level. " - "If you really want to unlock it, use 'rebar3 upgrade ~s'", - [NewDep, NewDep]), + "If you really want to unlock it, use 'rebar3 upgrade ~s'", + [NewDep, NewDep]), false end end; -- cgit v1.1