--- /dev/null
+import re
+import sys
+sys.path.insert(0, '../..')
+#sys.path.insert(0, '../')
+from meabook.parsers.ldif import LDIFParser
+from meabook.database.SQLite import SQLite
+
+regexp = re.compile(r'o=([^,]+)')
+
+class MyLDIFParser(LDIFParser):
+ def __init__(self, fobj, database):
+ LDIFParser.__init__(self, fobj)
+ self.database = database
+
+ def handle(self, dn, entry):
+ """Process each entry from ldif file."""
+
+ # filter entries
+ if not 'uid' in entry or not 'ou' in entry:
+ return
+ if 'deleted' in dn or not 'people' in dn:
+ return
+
+ # choose proper name
+ dn = regexp.findall(dn)
+ entry['o'] = [dn[0]]
+
+ # capitalize some fields
+ for field in ['cn']:
+ entry[field][0] = ' '.join([item.decode('utf-8').capitalize() for \
+ item in entry[field][0].split(' ')])
+ self.database.add_entry(entry)
+
+ def parse(self):
+ """Start parsing."""
+
+ self.database.clear()
+ LDIFParser.parse(self)
+ self.database.save()
+
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print "USAGE: %s fname" % sys.argv[0]
+ sys.exit(-1)
+
+ try:
+ database = SQLite('/tmp/')
+ parser = MyLDIFParser(open(sys.argv[1]), database)
+ except IOError:
+ print 'Wrong file name'
+ else:
+ parser.parse()