diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2019-09-23 16:16:09 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-23 16:16:09 -0300 |
commit | 879c6ef01f94df18a8457a3eb78aeafc4fe0a003 (patch) | |
tree | 900236b20cc85d15658224419bb366b93efb0225 | |
parent | 15d97c6d5c4e1acade2f983adb507e266b87aa93 (diff) | |
download | luarocks-879c6ef01f94df18a8457a3eb78aeafc4fe0a003.tar.gz luarocks-879c6ef01f94df18a8457a3eb78aeafc4fe0a003.tar.bz2 luarocks-879c6ef01f94df18a8457a3eb78aeafc4fe0a003.zip |
manif.writer: make remove_from_manifest more resilient (#1096)
Fixes #1095.
-rw-r--r-- | src/luarocks/manif/writer.lua | 9 |
1 files changed, 9 insertions, 0 deletions
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) | |||
412 | end | 412 | end |
413 | 413 | ||
414 | local package_entry = manifest.repository[name] | 414 | local package_entry = manifest.repository[name] |
415 | if package_entry == nil or package_entry[version] == nil then | ||
416 | -- entry is already missing from repository, no need to do anything | ||
417 | return true | ||
418 | end | ||
415 | 419 | ||
416 | local version_entry = package_entry[version][1] | 420 | local version_entry = package_entry[version][1] |
421 | if not version_entry then | ||
422 | -- manifest looks corrupted, rebuild | ||
423 | return writer.make_manifest(rocks_dir, deps_mode) | ||
424 | end | ||
425 | |||
417 | remove_package_items(manifest.modules, name, version, version_entry.modules) | 426 | remove_package_items(manifest.modules, name, version, version_entry.modules) |
418 | remove_package_items(manifest.commands, name, version, version_entry.commands) | 427 | remove_package_items(manifest.commands, name, version, version_entry.commands) |
419 | 428 | ||