Advertisement
faubiguy

pacsize.py

Jul 29th, 2016
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.74 KB | None | 0 0
  1. #!/usr/bin/python3
  2. import pyalpm, re
  3.  
  4. handle = pyalpm.Handle('/', '/var/lib/pacman')
  5. db = handle.get_localdb()
  6.  
  7. package_sizes = []
  8.  
  9. for package in db.pkgcache:
  10.     if len(package.compute_requiredby()) != 0:
  11.         continue
  12.     size = package.isize
  13.     for dep_name in package.depends:
  14.         dep_name = re.match(r'[\w\-]+', dep_name).group()
  15.         dep_pkg = db.get_pkg(dep_name)
  16.         if dep_pkg is None or dep_pkg.reason != pyalpm.PKG_REASON_DEPEND:
  17.             continue
  18.         if len(dep_pkg.compute_requiredby()) == 1:
  19.             size += dep_pkg.isize
  20.     package_sizes.append((size, package.name))
  21.  
  22. package_sizes.sort(reverse=True)
  23.  
  24. for size, pkg_name in package_sizes:
  25.     print('%s %.2f MiB' % (pkg_name, size / 1024**2))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement