Skip to content

Commit 29ef147

Browse files
jonatankloskojosevalim
authored andcommitted
Remove consolidated when restoring Mix.install/2 dir (#13382)
1 parent 74ab384 commit 29ef147

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

@@ -888,6 +890,7 @@ defmodule Mix do
888890

889891
if first_build? and restore_dir != nil and not force? do
890892
File.cp_r(restore_dir, install_project_dir)
893+
remove_dep(install_project_dir, @mix_install_app_string)
891894
end
892895

893896
File.mkdir_p!(install_project_dir)
@@ -991,7 +994,6 @@ defmodule Mix do
991994

992995
defp remove_leftover_deps(install_project_dir) do
993996
build_lib_dir = Path.join([install_project_dir, "_build", "dev", "lib"])
994-
deps_dir = Path.join(install_project_dir, "deps")
995997

996998
deps = File.ls!(build_lib_dir)
997999

@@ -1001,16 +1003,23 @@ defmodule Mix do
10011003
do: Atom.to_string(app)
10021004

10031005
# We want to keep :mix_install, but it has no application
1004-
loaded_deps = MapSet.put(loaded_deps, "mix_install")
1006+
loaded_deps = MapSet.put(loaded_deps, @mix_install_app_string)
10051007

10061008
for dep <- deps, not MapSet.member?(loaded_deps, dep) do
1007-
build_path = Path.join(build_lib_dir, dep)
1008-
File.rm_rf(build_path)
1009-
dep_path = Path.join(deps_dir, dep)
1010-
File.rm_rf(dep_path)
1009+
remove_dep(install_project_dir, dep)
10111010
end
10121011
end
10131012

1013+
defp remove_dep(install_project_dir, dep) do
1014+
build_lib_dir = Path.join([install_project_dir, "_build", "dev", "lib"])
1015+
deps_dir = Path.join(install_project_dir, "deps")
1016+
1017+
build_path = Path.join(build_lib_dir, dep)
1018+
File.rm_rf(build_path)
1019+
dep_path = Path.join(deps_dir, dep)
1020+
File.rm_rf(dep_path)
1021+
end
1022+
10141023
defp install_project_dir(cache_id) do
10151024
install_root =
10161025
System.get_env("MIX_INSTALL_DIR") ||
@@ -1028,7 +1037,7 @@ defmodule Mix do
10281037
build_path: "_build",
10291038
lockfile: "mix.lock",
10301039
deps_path: "deps",
1031-
app: :mix_install,
1040+
app: @mix_install_app,
10321041
erlc_paths: [],
10331042
elixirc_paths: [],
10341043
compilers: [],

0 commit comments

Comments
 (0)