+++ /dev/null
-#!/usr/bin/python
-
-import sys
-import os
-import csv
-import subprocess
-import ldap
-
-#columns = [ 'timestamp', 'first', 'last', 'email', 'constituency', 'year', 'major', 'cell', 'mitid', 'retreat', 'whynot', 'project', 'othermit', ]
-format = "%(first_with_initial)s;%(last_canonical)s;%(mitid)s"
-
-def dictize_line(header, line,):
- line_dict = {}
- for key, elem in zip(header, line, ):
- line_dict[key]=elem
- return line_dict
-
-
-
-def get_ldap_data(username, fields):
- con = ldap.open('ldap.mit.edu')
- con.simple_bind_s("", "")
- dn = "dc=mit,dc=edu"
- result = con.search_s('dc=mit,dc=edu', ldap.SCOPE_SUBTREE, 'uid=%s'%username, fields)
- if len(result) > 1: print "WARNING: More than one result returned for %s" % username
- if len(result) < 1: print "WARNING: Only one result returned for %s" % username
- ret = {}
- for key in result[0][1]:
- ret[key] = result[0][1][key][0]
- return ret
-
-def get_data_dict(line_dict):
- email = line_dict['email']
- username = email.lower().replace('@mit.edu', '')
- ldap = get_ldap_data(username, [ 'cn' , 'sn' , 'givenName' ])
- first = ldap['givenName'].replace(' ', '_').upper()
- last = ldap['sn'].replace(' ', '_').upper()
- mitid = line_dict['mitid']
- data_dict = { 'first_with_initial': first, 'last_canonical': last, 'mitid': mitid }
- return data_dict
-
-def format_line(data_dict):
- return format % data_dict
-
-
-def do_produce_card_info(db = sys.stdin):
- reader = csv.reader(db, )
- lines = []
-
- header = reader.next()
- line_dict = dictize_line(header, header, )
- data_dict = { 'first_with_initial': 'FIRST_M', 'last_canonical': 'LASTNAME', 'mitid': 'MIT ID' }
- lines.append(format_line(data_dict))
-
- for line in reader:
- line_dict = dictize_line(header, line)
- print line_dict
- lines.append(format_line(get_data_dict(line_dict)))
- print '\n'.join(lines)
-
-if __name__== '__main__':
- do_produce_card_info()