summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2013-06-19 11:02:21 -0700
committerZac Medico <zmedico@gentoo.org>2013-06-19 11:02:21 -0700
commita9e9402329500180b3e61cacf7b98b60a0685761 (patch)
tree6a79823813ab26088b9f226187e73fffc62d0067
parentRepoConfigLoader: initialize missing_repo_names (diff)
downloadportage-a9e9402329500180b3e61cacf7b98b60a0685761.tar.gz
portage-a9e9402329500180b3e61cacf7b98b60a0685761.tar.bz2
portage-a9e9402329500180b3e61cacf7b98b60a0685761.zip
RepoConfigLoader: handle invalid repos.conf more
-rw-r--r--pym/portage/repository/config.py20
1 files changed, 9 insertions, 11 deletions
diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py
index de1e7bc59..508a56e83 100644
--- a/pym/portage/repository/config.py
+++ b/pym/portage/repository/config.py
@@ -515,17 +515,15 @@ class RepoConfigLoader(object):
writemsg(
_("!!! Error while reading repo config file: %s\n") % e,
noiselevel=-1)
- # The configparser state is unreliable (prone to odd quirky
- # exceptions) after is has thrown an error, so just return early.
- self.prepos = {'DEFAULT': RepoConfig('DEFAULT', {})}
- self.prepos_order = ()
- self.ignored_repos = ()
- self.location_map = {}
- self.treemap = {}
- self._prepos_changed = True
- self._repo_location_list = ()
- self.missing_repo_names = frozenset()
- return
+ # The configparser state is unreliable (prone to quirky
+ # exceptions) after it has thrown an error, so use empty
+ # config and try to fall back to PORTDIR{,_OVERLAY}.
+ prepos.clear()
+ prepos['DEFAULT'] = RepoConfig('DEFAULT', {})
+ location_map.clear()
+ treemap.clear()
+ ignored_map.clear()
+ ignored_location_map.clear()
# If PORTDIR_OVERLAY contains a repo with the same repo_name as
# PORTDIR, then PORTDIR is overridden.