summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-04-21 19:07:30 +0000
committerZac Medico <zmedico@gentoo.org>2006-04-21 19:07:30 +0000
commit5f713b628b4445b8c0e18e08e762b1ef301fdab1 (patch)
tree658bd649279d3437e02340ad1fe69a0aaef4971e
parent5737e903a88b3909b19751bcd5596158ca740c05 (diff)
downloadportage-5f713b628b4445b8c0e18e08e762b1ef301fdab1.tar.gz
portage-5f713b628b4445b8c0e18e08e762b1ef301fdab1.tar.bz2
portage-5f713b628b4445b8c0e18e08e762b1ef301fdab1.zip
Fix `emerge -s` download size calculation for bug #130750.
svn path=/main/trunk/; revision=3184
-rwxr-xr-xbin/emerge34
-rw-r--r--pym/portage_manifest.py8
2 files changed, 21 insertions, 21 deletions
diff --git a/bin/emerge b/bin/emerge
index 49bc19bbd..09ba5bc0f 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -784,26 +784,20 @@ class search:
mysum = [0,0]
mycat = match.split("/")[0]
mypkg = match.split("/")[1]
-
- mydigest = portage.db["/"]["porttree"].dbapi.finddigest(mycat+"/"+mypkg + "-" + myversion)
-
- try:
- myfile = open(mydigest,"r")
- for line in myfile.readlines():
- mysum[0] += int(line.split(" ")[3])
- myfile.close()
- mystr = str(mysum[0]/1024)
- mycount=len(mystr)
- while (mycount > 3):
- mycount-=3
- mystr=mystr[:mycount]+","+mystr[mycount:]
- mysum[0]=mystr+" kB"
- except SystemExit, e:
- raise # Needed else can't exit
- except Exception, e:
- if edebug:
- print "!!! Exception:",e
- mysum[0]=" [no/bad digest]"
+ mycpv = match + "-" + myversion
+ myebuild = portage.portdb.findname(mycpv)
+ pkgdir = os.path.dirname(myebuild)
+ import portage_manifest
+ mf = portage_manifest.Manifest(pkgdir,
+ portage.FetchlistDict(pkgdir, portage.settings),
+ portage.settings["DISTDIR"])
+ mysum[0] = mf.getDistfilesSize(mf.fetchlist_dict[mycpv])
+ mystr = str(mysum[0]/1024)
+ mycount=len(mystr)
+ while (mycount > 3):
+ mycount-=3
+ mystr=mystr[:mycount]+","+mystr[mycount:]
+ mysum[0]=mystr+" kB"
if "--quiet" not in myopts:
print " ", darkgreen("Latest version available:"),myversion
diff --git a/pym/portage_manifest.py b/pym/portage_manifest.py
index 1b7135c97..06f6ac6ed 100644
--- a/pym/portage_manifest.py
+++ b/pym/portage_manifest.py
@@ -486,7 +486,13 @@ class Manifest(object):
def _getCpvDistfiles(self, cpv):
""" Get a list of all DIST files associated to the given cpv """
return self.fetchlist_dict[cpv]
-
+
+ def getDistfilesSize(self, fetchlist):
+ total_bytes = 0
+ for f in fetchlist:
+ total_bytes += int(self.fhashdict["DIST"][f]["size"])
+ return total_bytes
+
def updateFileHashes(self, ftype, fname, checkExisting=True, ignoreMissing=True, reuseExisting=False):
""" Regenerate hashes for the given file """
if checkExisting: