diff options
author | Zac Medico <zmedico@gentoo.org> | 2013-06-19 11:02:21 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2013-06-19 11:02:21 -0700 |
commit | a9e9402329500180b3e61cacf7b98b60a0685761 (patch) | |
tree | 6a79823813ab26088b9f226187e73fffc62d0067 | |
parent | RepoConfigLoader: initialize missing_repo_names (diff) | |
download | portage-a9e9402329500180b3e61cacf7b98b60a0685761.tar.gz portage-a9e9402329500180b3e61cacf7b98b60a0685761.tar.bz2 portage-a9e9402329500180b3e61cacf7b98b60a0685761.zip |
RepoConfigLoader: handle invalid repos.conf more
-rw-r--r-- | pym/portage/repository/config.py | 20 |
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. |