diff options
Diffstat (limited to 'pym/portage.py')
-rw-r--r-- | pym/portage.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/pym/portage.py b/pym/portage.py index 85b9bf670..cf38107df 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -6764,8 +6764,25 @@ class vardbapi(dbapi): return returnme def cpv_all(self, use_cache=1): + """ + Set use_cache=0 to bypass the portage.cachedir() cache in cases + when the accuracy of mtime staleness checks should not be trusted + (generally this is only necessary in critical sections that + involve merge or unmerge of packages). + """ returnme = [] basepath = os.path.join(self.root, VDB_PATH) + os.path.sep + + if use_cache: + from portage import listdir + else: + def listdir(p, **kwargs): + try: + return [x for x in os.listdir(p) \ + if os.path.isdir(os.path.join(p, x))] + except EnvironmentError: + return [] + for x in listdir(basepath, EmptyOnError=1, ignorecvs=1, dirsonly=1): if self._excluded_dirs.match(x) is not None: continue |