@@ -22,7 +22,8 @@ defmodule Mix.Deps.Retriever do
2222 """
2323 def fetch ( dep , config ) do
2424 Mix.Dep [ manager : manager , scm: scm , opts: opts ] = dep
25- dep = dep . status ( scm_status ( scm , opts ) )
25+ dep = dep . status ( scm_status ( scm , opts ) )
26+ dest = opts [ :dest ]
2627
2728 validate_app ( cond do
2829 not ok? ( dep . status ) ->
@@ -31,25 +32,31 @@ defmodule Mix.Deps.Retriever do
3132 manager == :rebar ->
3233 rebar_dep ( dep , config )
3334
34- manager == : mix ->
35- mix_dep ( dep , config )
35+ mix? ( dest ) ->
36+ mix_dep ( dep . manager ( :mix ) , config )
3637
37- manager == :make ->
38- dep
38+ rebar? ( dest ) ->
39+ rebar_dep ( dep . manager ( :rebar ) , config )
40+
41+ make? ( dest ) ->
42+ dep . manager ( :make )
43+
44+ true ->
45+ mix_dep ( dep . manager ( :mix ) , config )
3946 end )
4047 end
4148
4249 ## Helpers
4350
4451 defp to_dep ( tuple , scms , from , manager // nil ) do
45- dep = with_scm_and_app ( tuple , scms ) . from ( from )
52+ dep = with_scm_and_app ( tuple , scms ) . from ( from ) . manager ( manager )
4653
4754 if match? ( { _ , req , _ } when is_regex ( req ) , tuple ) and
4855 not String . ends_with? ( from , "rebar.config" ) do
4956 invalid_dep_format ( tuple )
5057 end
5158
52- dep . manager ( manager || detect_manager ( dep ) )
59+ dep
5360 end
5461
5562 defp with_scm_and_app ( { app , opts } , scms ) when is_atom ( app ) and is_list ( opts ) do
@@ -95,16 +102,6 @@ defmodule Mix.Deps.Retriever do
95102 defp ok? ( { :ok , _ } ) , do: true
96103 defp ok? ( _ ) , do: false
97104
98- defp detect_manager ( dep ) do
99- dest = dep . opts [ :dest ]
100- cond do
101- mix? ( dest ) -> :mix
102- rebar? ( dest ) -> :rebar
103- make? ( dest ) -> :make
104- true -> :mix
105- end
106- end
107-
108105 defp mix? ( dest ) do
109106 File . regular? ( Path . join ( dest , "mix.exs" ) )
110107 end
0 commit comments