Revert portdbapi category auto-detection code since it's not really needed
authorZac Medico <zmedico@gentoo.org>
Fri, 28 Mar 2008 09:46:43 +0000 (09:46 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 28 Mar 2008 09:46:43 +0000 (09:46 -0000)
and can cause problems if we need to add new non-category directories in
the future. We only really need the category auto-detection for bindbapi and
vardbapi anyway. (trunk r9368)

svn path=/main/branches/2.1.2/; revision=9536

pym/portage.py

index d2edcf0f12e31e44c204f7ae83924ed1a1075032..4b3df78eb04ec59fb69e5d2d5c64dc5b97fc6201 100644 (file)
@@ -6814,9 +6814,6 @@ def close_portdbapi_caches():
 class portdbapi(dbapi):
        """this tree will scan a portage directory located at root (passed to init)"""
        portdbapi_instances = []
-       _non_category_dirs = ["distfiles", "eclass", "licenses",
-               "local", "metadata", "packages", "profiles", "scripts"]
-       _non_category_dirs = re.compile(r'^(%s)$' % "|".join(_non_category_dirs))
        def __init__(self,porttree_root,mysettings=None):
                portdbapi.portdbapi_instances.append(self)
 
@@ -6825,6 +6822,7 @@ class portdbapi(dbapi):
                else:
                        global settings
                        self.mysettings = config(clone=settings)
+               self._categories = set(self.mysettings.categories)
                # This is strictly for use in aux_get() doebuild calls when metadata
                # is generated by the depend phase.  It's safest to use a clone for
                # this purpose because doebuild makes many changes to the config
@@ -7268,11 +7266,8 @@ class portdbapi(dbapi):
        def cp_all(self):
                "returns a list of all keys in our tree"
                d={}
-               for oroot in self.porttrees:
-                       for x in listdir(oroot, EmptyOnError=1, ignorecvs=1, dirsonly=1):
-                               if not self._category_re.match(x) or \
-                                       self._non_category_dirs.match(x):
-                                       continue
+               for x in self.mysettings.categories:
+                       for oroot in self.porttrees:
                                for y in listdir(oroot+"/"+x, EmptyOnError=1, ignorecvs=1, dirsonly=1):
                                        if not self._pkg_dir_name_re.match(y) or \
                                                y == "CVS":
@@ -7302,7 +7297,7 @@ class portdbapi(dbapi):
                                        self.xcache["match-all"][mycp] = cachelist
                                return cachelist[:]
                mysplit = mycp.split("/")
-               invalid_category = not self._category_re.match(mysplit[0])
+               invalid_category = mysplit[0] not in self._categories
                d={}
                if mytree:
                        mytrees = [mytree]