| diff -Nur esearch.orig/eupdatedb.py esearch/eupdatedb.py |
| --- esearch.orig/eupdatedb.py 2008-12-30 21:57:59.000000000 -0800 |
| +++ esearch/eupdatedb.py 2008-12-31 16:50:52.000000000 -0800 |
| @@ -9,6 +9,7 @@ |
| from time import time |
| start = time() |
| |
| +import os |
| import sys |
| import re |
| from os import stat, unlink, environ, open, fdopen, O_RDONLY, O_EXCL, O_CREAT, O_WRONLY |
| @@ -22,8 +23,12 @@ |
| import portage |
| try: |
| from portage.output import red, darkgreen, green, bold, nocolor |
| + from portage.manifest import Manifest |
| + from portage.exception import PortageException |
| except ImportError: |
| from output import red, darkgreen, green, bold, nocolor |
| + from portage_manifest import Manifest |
| + from portage_exception import PortageException |
| |
| from common import needdbversion, version |
| |
| @@ -66,14 +71,15 @@ |
| def getfs(pkg): |
| # from /usr/bin/emerge |
| try: |
| - mysum = 0 |
| - mydigest = portage.portdb.finddigest(pkg) |
| - |
| - myfilefd = open(mydigest, O_RDONLY) |
| - myfile = fdopen(myfilefd, "r") |
| - for line in myfile.readlines(): |
| - mysum += int(line.split(" ")[3]) |
| - myfile.close() |
| + myebuild = portage.portdb.findname(pkg) |
| + pkgdir = os.path.dirname(myebuild) |
| + mf = Manifest(pkgdir, portage.settings["DISTDIR"]) |
| + if hasattr(portage.portdb, "getFetchMap"): |
| + fetchlist = portage.portdb.getFetchMap(pkg) |
| + else: |
| + fetchlist = portage.portdb.getfetchlist(pkg, |
| + mysettings=portage.settings, all=True)[1] |
| + mysum = mf.getDistfilesSize(fetchlist) |
| mystr = str(mysum/1024) |
| mycount = len(mystr) |
| while (mycount > 3): |
| @@ -82,7 +88,7 @@ |
| mysum = mystr + " kB" |
| |
| return mysum |
| - except: |
| + except (PortageException, KeyError): |
| return "[no/bad digest]" |
| |
| try: |