From 879c6ef01f94df18a8457a3eb78aeafc4fe0a003 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Mon, 23 Sep 2019 16:16:09 -0300 Subject: manif.writer: make remove_from_manifest more resilient (#1096) Fixes #1095. --- src/luarocks/manif/writer.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/luarocks/manif/writer.lua b/src/luarocks/manif/writer.lua index d6b70a5f..44580a46 100644 --- a/src/luarocks/manif/writer.lua +++ b/src/luarocks/manif/writer.lua @@ -412,8 +412,17 @@ function writer.remove_from_manifest(name, version, repo, deps_mode) end local package_entry = manifest.repository[name] + if package_entry == nil or package_entry[version] == nil then + -- entry is already missing from repository, no need to do anything + return true + end local version_entry = package_entry[version][1] + if not version_entry then + -- manifest looks corrupted, rebuild + return writer.make_manifest(rocks_dir, deps_mode) + end + remove_package_items(manifest.modules, name, version, version_entry.modules) remove_package_items(manifest.commands, name, version, version_entry.commands) -- cgit v1.2.3-55-g6feb