#!/usr/bin/env python

import sys, os, geet

def _fail():
    print "Usage: %s namelist directory [ directory ... ]" % sys.argv[0]
    sys.exit(-1)


def _read_names(name):
    if name == '-':
        f = sys.stdin
    else:
        f = open(name)

    for line in f.xreadlines():
        s = line.strip()
        if not s.startswith("#") and len(s) != 0:
            yield s


def _run():
    if len(sys.argv) < 3:
        _fail()

    # we save result to set to be able to itarate over it several times
    try:
        names = set(_read_names(sys.argv[1]))
    except IOError:
        _fail()

    for dir in sys.argv[2:]:
        if not os.path.isdir(dir):
            sys.stderr.write("Directory not found: %s" % dir)
            continue
        for f in os.listdir(dir):
            file = os.path.join(dir,f)
            try:
                p =  geet.package(file)
                if not p.isSource and p.source_package_name() in names:
                    print p.filename
            except:
                if os.path.isfile(file) and file.endswith('.rpm'):
                    sys.stderr.write("Error loading file: %s")
                # else we should just skip this filesystem object silently

if __name__ == '__main__':
    sys.exit(_run())
