#!/usr/bin/env python

# Search the namebank for matching rows
from __future__ import print_function
import sys
import metarace
import os
from metarace import namebank
from metarace import strops

if len(sys.argv) > 3 or len(sys.argv) < 2:
    print(u'Usage: mbrfind first last | mrfindlic license')
    sys.exit(1)
cwd = os.path.realpath(u'.')
metarace.init(withgtk=False)
os.chdir(cwd)

with namebank.namebank() as n:
    ret = []

    # match any exact buckets from first field;
    if len(sys.argv) == 2:
        lpat = sys.argv[1].encode('ascii', 'ignore')
        lv = n.raw_search(lpat)
        if lv is not None:
            ret.extend(lv)
        else:
            ret.extend(n.ksearch(sys.argv[1]))

    # then search fuzzy...
    fnam = unicode(sys.argv[1])
    lnam = u''
    if len(sys.argv) > 2:
        lnam = unicode(sys.argv[2])
    ret.extend(n.search(fnam, lnam))
    if len(ret) > 0:
        print(u'Found {0} matches:'.format(len(ret)))
        for r in ret:
            print(u', '.join([unicode(a) for a in n[r]]))
    else:
       print('No matches found.')
