#!/usr/bin/python

import sys
import string
import apt

def normalize_line(line):
    line = line.strip()
    (arch,comp,pkg,bins) = line.split("|")
    bins = bins.split(",")
    bins.sort()
    return "%s|%s|%s|%s" % (arch, comp, pkg, ",".join(bins))

def pkg_only(line):
    (arch,comp,pkg,bins) = line.split("|")
    return "||%s|" % pkg

if __name__ == "__main__":
    if len(sys.argv) < 3:
        print "need two files"
        sys.exit(1)

    old = set()
    new = set()

    #func = normalize_line
    func = pkg_only

    for l in map(func, open(sys.argv[1])):
        old.add(l)
    for l in map(func, open(sys.argv[2])):
        new.add(l)

    print "new:"
    for line in set(new - old):
        print line

    print "\nremoved:"
    cache = apt.Cache()
    for line in set(old - new):
        if not line.split("|")[2] in cache:
            print "demoted: ", line.split("|")[2] 
            continue
        print line
