Skip to content

Commit 7cc1ab4

Browse files
author
José Valim
committed
Migrate from previous manifest versions
Signed-off-by: José Valim <[email protected]>
1 parent 3798dff commit 7cc1ab4

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

lib/mix/lib/mix/compilers/elixir.ex

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,23 @@ defmodule Mix.Compilers.Elixir do
234234
end
235235
end
236236

237+
# Similar to read manifest but supports data migration.
237238
defp parse_manifest(manifest, keep_paths) do
238-
Enum.reduce read_manifest(manifest), {[], [], %{}, %{}}, fn
239+
state = {[], [], %{}, %{}}
240+
241+
case :file.consult(manifest) do
242+
{:ok, [@manifest_vsn|data]} ->
243+
parse_manifest(data, keep_paths, state)
244+
{:ok, [:v2|data]} ->
245+
for {beam, _, _, _, _, _, _, _} <- data, do: File.rm(beam)
246+
state
247+
_ ->
248+
state
249+
end
250+
end
251+
252+
defp parse_manifest(data, keep_paths, state) do
253+
Enum.reduce data, state, fn
239254
{_, _, _, source, _, _, _} = entry, {keep, skip, keep_sources, skip_sources} ->
240255
if String.starts_with?(source, keep_paths) do
241256
{[entry|keep], skip, keep_sources, skip_sources}

0 commit comments

Comments
 (0)