No need to read the file three times, we can just get all the data in one go. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/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)
 |