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

Autopatch: Improve hex version detection for ~>

Loïc Hoguin 1 год назад
Родитель
Сommit
9fd062209f
1 измененных файлов с 22 добавлено и 16 удалено
  1. 22 16
      core/deps.mk

+ 22 - 16
core/deps.mk

@@ -378,7 +378,7 @@ define dep_autopatch_rebar.erl
 		end,
 		Write("\n")
 	end(),
-	GetHexVsn = fun(N, NP) ->
+	GetHexVsn2 = fun(N, NP) ->
 		case file:consult("$(call core_native_path,$(DEPS_DIR)/$1/rebar.lock)") of
 			{ok, Lock} ->
 				io:format("~p~n", [Lock]),
@@ -410,28 +410,34 @@ define dep_autopatch_rebar.erl
 				false
 		end
 	end,
-	SemVsn = fun
-		("~>" ++ S0) ->
-			S = case S0 of
-				" " ++ S1 -> S1;
-				_ -> S0
-			end,
-			case length([ok || $$. <- S]) of
-				0 -> S ++ ".0.0";
-				1 -> S ++ ".0";
-				_ -> S
+	GetHexVsn3 = fun
+		(N, NP, "~>" ++ S0) ->
+			case GetHexVsn2(N, NP) of
+				false ->
+					S2 = case S0 of
+						" " ++ S1 -> S1;
+						_ -> S0
+					end,
+					S = case length([ok || $$. <- S2]) of
+						0 -> S2 ++ ".0.0";
+						1 -> S2 ++ ".0";
+						_ -> S2
+					end,
+					{N, {hex, NP, S}};
+				NameSource ->
+					NameSource
 			end;
-		(S) -> S
+		(N, NP, S) -> {N, {hex, NP, S}}
 	end,
 	fun() ->
 		File = case lists:keyfind(deps, 1, Conf) of
 			false -> [];
 			{_, Deps} ->
 				[begin case case Dep of
-							N when is_atom(N) -> GetHexVsn(N, N);
-							{N, S} when is_atom(N), is_list(S) -> {N, {hex, N, SemVsn(S)}};
-							{N, {pkg, NP}} when is_atom(N) -> GetHexVsn(N, NP);
-							{N, S, {pkg, NP}} -> {N, {hex, NP, S}};
+							N when is_atom(N) -> GetHexVsn2(N, N);
+							{N, S} when is_atom(N), is_list(S) -> GetHexVsn3(N, N, S);
+							{N, {pkg, NP}} when is_atom(N) -> GetHexVsn2(N, NP);
+							{N, S, {pkg, NP}} -> GetHexVsn3(N, NP, S);
 							{N, S} when is_tuple(S) -> {N, S};
 							{N, _, S} -> {N, S};
 							{N, _, S, _} -> {N, S};