#!/usr/bin/python from __future__ import print_function import argparse import os import sys here = sys.path[0] if here != '/usr/bin': # Git checkout sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))) from kobo.rpmlib import parse_nvra, make_nvra from pungi.wrappers.pungi import PungiWrapper def read_rpms(fn): pw = PungiWrapper() with open(fn, "r") as f: data, _, _ = pw.parse_log(f) result = set() for i in data["rpm"]: nvra = parse_nvra(i["path"]) result.add(make_nvra(nvra, add_rpm=True)) return result parser = argparse.ArgumentParser() parser.add_argument('old', metavar='OLD', default='pungi-yum.log') parser.add_argument('new', metavar='NEW', default='pungi-dnf.log') args = parser.parse_args() yum_rpms = read_rpms(args.old) dnf_rpms = read_rpms(args.new) removed = yum_rpms - dnf_rpms added = dnf_rpms - yum_rpms print("ADDED: %s" % len(added)) for i in sorted(added): print(" %s" % i) print() print("REMOVED: %s" % len(removed)) for i in sorted(removed): print(" %s" % i) print() print("ADDED: %6s" % len(added)) print("REMOVED: %6s" % len(removed)) print("YUM RPMS: %6s" % len(yum_rpms)) print("DNF RPMS: %6s" % len(dnf_rpms)) print("ALL RPMS: %6s" % len(yum_rpms | dnf_rpms)) if added or removed: sys.exit(1)