#!/usr/bin/env python # # Author: Martin Matusiak # Licensed under the GNU Public License, version 2. # # revision 1 - bugfix for paludis symlink in pkgdb pkgdb = "/var/db/pkg" import os, string, stat from operator import itemgetter sizes = {} cats = os.listdir(pkgdb) for c in cats: cpath = os.path.join(pkgdb, c) if os.path.isdir(cpath): cat = os.listdir(cpath) for p in cat: size = 0 cont = os.path.join(pkgdb, c, p, "CONTENTS") fd = open(cont, 'r') strings = fd.readlines() for s in strings: line = string.split(s, " ") if line[0] == "obj" and os.path.exists(line[1]): size += os.path.getsize(line[1]) fd.close() sizes[os.path.join(c, p)] = size pkglist = sorted(sizes.items(), key=itemgetter(1)) for i in pkglist: (size, pkg) = ( str(i[1]), i[0] ) print string.rjust(size, 11), " ", pkg