#!/stem/bin/python
# $Id: parsestudents,v 1.10 1998/09/15 18:28:06 ron Exp $
#
# Ron Klatchko
# UCSF Library and Center for Knowledge Management
# Copyright (c) 1997-1998 UC Regents. All rights reserved.
#

import sys
import stringex
import os

import displaycount

import cphelp
import student_type


if __name__ == "__main__":
    if len(sys.argv) == 2:
	dbdir = "."
	file = open( sys.argv[1] )
    elif len(sys.argv) == 3:
	dbdir = sys.argv[1]
	file = open( sys.argv[2] )
    else:
	sys.stdout.write( "Usage: parsestudents [dbdir] file\n" )
	sys.exit( 0 )
    
    cp = cphelp.cphelp( os.path.join(dbdir, "student_db") )

    try:
	dc = displaycount.displaycount( "Student #", 10, sys.stdout )

	while 1:
	    dc.next()

	    line = file.readline()
	    if not line: break
	    line = line[:-1]

	    l = stringex.split(line, ",")
	    if len(l) != len(student_type.student.data):
		sys.stderr.write( "%s\n" % (l,) )
		sys.exit( 1 )

	    #
	    # Create the student object
	    #
	    s = student_type.student( l )

	    #
	    # Put the object in the necessary CP databases keyed
	    # on the idnum
	    #
	    cp.addToCP( s, str( s.idnum ) )

	rv = 0

    except:
	import traceback

	del dc
	traceback.print_exc()
	
	cp.abort()
	rv = 1
	
    #
    # This is needed since os is gone in module cphelp
    # otherwise.  Supposedly this is fixed as of Python 1.5.1.
    #
    del cp
    sys.exit(rv)

