Просмотр исходного кода

core/deps.mk: Support Rebar lock files with version "1.2.0"

This is the case in erlang-systemd [1]. As far as I can tell, the format
is the same for the bits Erlang.mk is interested in.

The testsuite is expanded to use version 0.6.0 of erlang-systemd.

[1] https://github.com/rabbitmq/erlang-systemd
Jean-Sébastien Pédron 4 лет назад
Родитель
Сommit
d80984c103
2 измененных файлов с 20 добавлено и 5 удалено
  1. 14 3
      core/deps.mk
  2. 6 2
      test/core_deps.mk

+ 14 - 3
core/deps.mk

@@ -382,8 +382,19 @@ define dep_autopatch_rebar.erl
 		case file:consult("$(call core_native_path,$(DEPS_DIR)/$1/rebar.lock)") of
 			{ok, Lock} ->
 				io:format("~p~n", [Lock]),
-				case lists:keyfind("1.1.0", 1, Lock) of
-					{_, LockPkgs} ->
+				LockPkgs = case lists:keyfind("1.2.0", 1, Lock) of
+					{_, LP} ->
+						LP;
+					_ ->
+						case lists:keyfind("1.1.0", 1, Lock) of
+							{_, LP} ->
+								LP;
+							_ ->
+								false
+						end
+				end,
+				if
+					is_list(LockPkgs) ->
 						io:format("~p~n", [LockPkgs]),
 						case lists:keyfind(atom_to_binary(N, latin1), 1, LockPkgs) of
 							{_, {pkg, _, Vsn}, _} ->
@@ -392,7 +403,7 @@ define dep_autopatch_rebar.erl
 							_ ->
 								false
 						end;
-					_ ->
+					true ->
 						false
 				end;
 			_ ->

+ 6 - 2
test/core_deps.mk

@@ -600,7 +600,7 @@ core-deps-fetch-hex: init
 	$t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v
 
 	$i "Add Cowboy 1.0.0 to the list of dependencies"
-	$t perl -ni.bak -e 'print;if ($$.==1) {print "DEPS = cowboy\ndep_cowboy = hex 1.0.0\n"}' $(APP)/Makefile
+	$t perl -ni.bak -e 'print;if ($$.==1) {print "DEPS = cowboy systemd\ndep_cowboy = hex 1.0.0\ndep_systemd = hex 0.6.0\n"}' $(APP)/Makefile
 
 ifdef LEGACY
 	$i "Add Cowboy to the applications key in the .app.src file"
@@ -614,13 +614,17 @@ endif
 	$t test -d $(APP)/deps/cowboy
 	$t test -d $(APP)/deps/cowlib
 	$t test -d $(APP)/deps/ranch
+	$t test -d $(APP)/deps/systemd
+	$t test -d $(APP)/deps/enough
 
 	$i "Check that the application was compiled correctly"
 	$t $(ERL) -pa $(APP)/ebin/ $(APP)/deps/*/ebin/ -eval " \
-		[ok = application:load(App) || App <- [$(APP), cowboy, cowlib, ranch]], \
+		[ok = application:load(App) || App <- [$(APP), cowboy, cowlib, ranch, systemd, enough]], \
 		{ok, Deps} = application:get_key($(APP), applications), \
 		true = lists:member(cowboy, Deps), \
+		true = lists:member(systemd, Deps), \
 		{ok, \"1.0.0\"} = application:get_key(cowboy, vsn), \
+		{ok, \"0.6.0\"} = application:get_key(systemd, vsn), \
 		halt()"
 
 # @todo Enable this test again when a host provides Mercurial again.