#!/usr/bin/python

import sys
import os
import apt

def printUsage():
    print """Usage: \"%s\"

It shows the diff in installed-size of all installed debian packages during the
next upgrade.

USAGE EXAMPLES:
  - Show the top50:
      upgrade-bloatscanner |sort -g -k2 |tail -n50
""" % os.path.basename(sys.argv[0])

if len(sys.argv) >1:
    printUsage()
    sys.exit(0)

cache = apt.Cache()
packages = [ i for i in cache if i.isUpgradable == 1 ]
for p in packages:
        r = p.candidateRecord
        # both in kB
        # diff_size  = int(r['Size']) - p.packageSize # p.packageSize wrong
        diff_isize = int(r['Installed-Size']) - p.installedSize/1024
        print p.name, diff_isize
