diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-04-21 19:07:30 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-04-21 19:07:30 +0000 |
commit | 5f713b628b4445b8c0e18e08e762b1ef301fdab1 (patch) | |
tree | 658bd649279d3437e02340ad1fe69a0aaef4971e | |
parent | 5737e903a88b3909b19751bcd5596158ca740c05 (diff) | |
download | portage-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-x | bin/emerge | 34 | ||||
-rw-r--r-- | pym/portage_manifest.py | 8 |
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: |