summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlec Warner <antarus@gentoo.org>2007-01-16 01:36:45 +0000
committerAlec Warner <antarus@gentoo.org>2007-01-16 01:36:45 +0000
commit03043f6a0f9220f7764950a33cfe856de7e119ce (patch)
tree7a888fb6916ed1e63eb663e6ea7b0ef52eb72d6e
parentEnable repoman to commit a Manifest alone instead of bailing out with "Didn't... (diff)
downloadportage-multirepo-03043f6a0f9220f7764950a33cfe856de7e119ce.tar.gz
portage-multirepo-03043f6a0f9220f7764950a33cfe856de7e119ce.tar.bz2
portage-multirepo-03043f6a0f9220f7764950a33cfe856de7e119ce.zip
ferringb pointed out this portroot parameter, ended up not using it, try an os.path.exists to save a very common (and slow) except on missing repo_name files for overlays, use a dict to facility a nicer regex comparison loop for news restrictions.
svn path=/main/trunk/; revision=5662
-rw-r--r--pym/portage.py17
-rw-r--r--pym/portage_news.py23
2 files changed, 16 insertions, 24 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 3cbe7114..501f5568 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -4527,13 +4527,10 @@ def getmaskingstatus(mycpv, settings=None, portdb=None):
return rValue
class portagetree:
- def __init__(self, root="/", virtual=None, clone=None, settings=None, portroot=None):
+ def __init__(self, root="/", virtual=None, clone=None, settings=None):
"""
Constructor for a PortageTree
- Note: Portroot was added for GLEP 42 functionality and defaults to the $PORTDIR
- env variable.
-
@param root: ${ROOT}, defaults to '/', see make.conf(5)
@type root: String/Path
@param virtual: UNUSED
@@ -5549,11 +5546,13 @@ class portdbapi(dbapi):
[os.path.realpath(t) for t in self.mysettings["PORTDIR_OVERLAY"].split()]
self.treemap = {}
for path in self.porttrees:
- try:
- repo_name = open( os.path.join( path , REPO_NAME_LOC ) ,'r').readline().rstrip()
- self.treemap[repo_name] = path
- except (OSError,IOError):
- pass
+ repo_name_path = os.path.join( path, REPO_NAME_LOC )
+ if os.path.exists( repo_name_path ):
+ try:
+ repo_name = open( repo_name_path ,'r').readline().strip()
+ self.treemap[repo_name] = path
+ except (OSError,IOError):
+ pass
self.auxdbmodule = self.mysettings.load_best_module("portdbapi.auxdbmodule")
self.auxdb = {}
diff --git a/pym/portage_news.py b/pym/portage_news.py
index ea804f31..736ce3fd 100644
--- a/pym/portage_news.py
+++ b/pym/portage_news.py
@@ -163,21 +163,14 @@ class NewsItem(object):
#will never match
if not line.startswith("D"):
continue
- match = _installedRE.match( line )
- if match:
- self.restrictions.append(
- DisplayInstalledRestriction( match.groups()[0].strip().rstrip() ) )
- continue
- match = _profileRE.match( line )
- if match:
- self.restrictions.append(
- DisplayProfileRestriction( match.groups()[0].strip().rstrip() ) )
- continue
- match = _keywordRE.match( line )
- if match:
- self.restrictions.append(
- DisplayKeywordRestriction( match.groups()[0].strip().rstrip() ) )
- continue
+ restricts = { _installedRE : DisplayInstalledRestriction,
+ _profileRE : DisplayProfileRestriction,
+ _keywordRE : DisplayKeywordRestriction }
+ for regex, restriction in restricts.iteritems():
+ match = regex.match(line)
+ if match:
+ self.restrictions.append( restriction( match.groups()[0].strip() ) )
+ continue
self._parsed = True
def __getattr__( self, attr ):