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 | ||
