Skip to content

Commit 523b7f1

Browse files
author
José Valim
committed
Do not fetch the manager before the repo is available
1 parent d436c97 commit 523b7f1

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

lib/mix/lib/mix/deps/retriever.ex

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)