gen2deb/find_pkg_matches.py
2012-09-26 10:31:58 +02:00

46 lines
1.2 KiB
Python
Executable file

#!/usr/bin/env python
import sys
deb2gen = dict()
gen2deb = dict()
with open("./deb2gen_mapping.list") as f:
for line in f:
d, g = line.strip().split('\t')
deb2gen[d] = g
gen2deb[g] = d
with open("./deb_source_pkgs.list") as f:
debian_names = [p[4:].strip() for p in f]
with open("./gen_source_pkgs.list") as f:
gentoo_names = [p.strip() for p in f]
for p in debian_names:
# if mapping exists, continue
orig = p
if deb2gen.get(p):
continue
# first try exact match
matches = [g for g in gentoo_names if p == g.split('/')[-1]]
if matches:
print "%s\t%s"%(orig, matches[0])
continue
# then try substring matches
# remove '-perl' prefix
if p.endswith("-perl"):
p = p[:-5]
# remove 'python-' suffix
if p.startswith("python-"):
p = p[7:]
# remove 'lib' suffix
if p.startswith("lib"):
p = p[3:]
# remove dashes, dots and numbers from the end of the package name
p = p.rstrip(".-1234567890")
matches = [g for g in gentoo_names if p in g.split('/')[-1].lower()]
if matches:
print "%s\t%s"%(orig, str(matches))
continue
# we give up and print the debian source package name that was not matched
print orig