Skip to content

Commit d5e9ad3

Browse files
Remove consolidated when restoring Mix.install/2 dir (#13382)
1 parent a257c5f commit d5e9ad3

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

lib/mix/lib/mix.ex

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,8 @@ defmodule Mix do
377377
"""
378378

379379
@mix_install_project __MODULE__.InstallProject
380+
@mix_install_app :mix_install
381+
@mix_install_app_string Atom.to_string(@mix_install_app)
380382

381383
use Application
382384

@@ -893,6 +895,7 @@ defmodule Mix do
893895

894896
if first_build? and restore_dir != nil and not force? do
895897
File.cp_r(restore_dir, install_project_dir)
898+
remove_dep(install_project_dir, @mix_install_app_string)
896899
end
897900

898901
File.mkdir_p!(install_project_dir)
@@ -996,7 +999,6 @@ defmodule Mix do
996999

9971000
defp remove_leftover_deps(install_project_dir) do
9981001
build_lib_dir = Path.join([install_project_dir, "_build", "dev", "lib"])
999-
deps_dir = Path.join(install_project_dir, "deps")
10001002

10011003
deps = File.ls!(build_lib_dir)
10021004

@@ -1006,16 +1008,23 @@ defmodule Mix do
10061008
do: Atom.to_string(app)
10071009

10081010
# We want to keep :mix_install, but it has no application
1009-
loaded_deps = MapSet.put(loaded_deps, "mix_install")
1011+
loaded_deps = MapSet.put(loaded_deps, @mix_install_app_string)
10101012

10111013
for dep <- deps, not MapSet.member?(loaded_deps, dep) do
1012-
build_path = Path.join(build_lib_dir, dep)
1013-
File.rm_rf(build_path)
1014-
dep_path = Path.join(deps_dir, dep)
1015-
File.rm_rf(dep_path)
1014+
remove_dep(install_project_dir, dep)
10161015
end
10171016
end
10181017

1018+
defp remove_dep(install_project_dir, dep) do
1019+
build_lib_dir = Path.join([install_project_dir, "_build", "dev", "lib"])
1020+
deps_dir = Path.join(install_project_dir, "deps")
1021+
1022+
build_path = Path.join(build_lib_dir, dep)
1023+
File.rm_rf(build_path)
1024+
dep_path = Path.join(deps_dir, dep)
1025+
File.rm_rf(dep_path)
1026+
end
1027+
10191028
defp install_project_dir(cache_id) do
10201029
install_root =
10211030
System.get_env("MIX_INSTALL_DIR") ||
@@ -1033,7 +1042,7 @@ defmodule Mix do
10331042
build_path: "_build",
10341043
lockfile: "mix.lock",
10351044
deps_path: "deps",
1036-
app: :mix_install,
1045+
app: @mix_install_app,
10371046
erlc_paths: [],
10381047
elixirc_paths: [],
10391048
compilers: [],

0 commit comments

Comments
 (0)