summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Meadows-Jönsson <eric.meadows.jonsson@gmail.com>2019-12-02 21:07:54 +0100
committerEric Meadows-Jönsson <eric.meadows.jonsson@gmail.com>2019-12-02 21:56:51 +0100
commit5719781625e251490f29a93e48fc25ee991df2cd (patch)
tree91f00fd9417ba1f4abb5e57981f8b934de845390
parent7191faab18bc7cd80647e4411959f1db45667782 (diff)
downloadelixir-emj/override-manager.tar.gz
User set :manager should override SCMemj/override-manager
-rw-r--r--lib/mix/lib/mix/dep/loader.ex11
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/mix/lib/mix/dep/loader.ex b/lib/mix/lib/mix/dep/loader.ex
index 72f5fe1be..8ecb9f7e4 100644
--- a/lib/mix/lib/mix/dep/loader.ex
+++ b/lib/mix/lib/mix/dep/loader.ex
@@ -83,7 +83,7 @@ defmodule Mix.Dep.Loader do
latest status and children.
"""
def load(%Mix.Dep{manager: manager, scm: scm, opts: opts} = dep, children) do
- manager = scm_manager(scm, opts) || manager || infer_manager(opts[:dest])
+ manager = opts[:manager] || scm_manager(scm, opts) || manager || infer_manager(opts[:dest])
dep = %{dep | manager: manager, status: scm_status(scm, opts)}
{dep, children} =
@@ -137,9 +137,8 @@ defmodule Mix.Dep.Loader do
## Helpers
- def to_dep(tuple, from, manager \\ nil) do
- %{opts: opts} = dep = with_scm_and_app(tuple)
- %{dep | from: from, manager: opts[:manager] || manager}
+ defp to_dep(tuple, from, manager) do
+ %{with_scm_and_app(tuple) | from: from, manager: manager}
end
defp with_scm_and_app({app, opts} = original) when is_atom(app) and is_list(opts) do
@@ -325,7 +324,7 @@ defmodule Mix.Dep.Loader do
# because umbrella projects are not supported in remotes.
defp mix_dep(%Mix.Dep{opts: opts} = dep, children) do
from = Path.join(opts[:dest], "mix.exs")
- deps = Enum.map(children, &to_dep(&1, from))
+ deps = Enum.map(children, &to_dep(&1, from, _manager = nil))
{dep, deps}
end
@@ -356,7 +355,7 @@ defmodule Mix.Dep.Loader do
from = Path.absname("mix.exs")
(config[:deps] || [])
- |> Enum.map(&to_dep(&1, from))
+ |> Enum.map(&to_dep(&1, from, _manager = nil))
|> split_by_env_and_target({opts[:env], nil})
|> elem(0)
end