diff options
Diffstat (limited to 'csv2GradeBook.tcl')
-rwxr-xr-x | csv2GradeBook.tcl | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/csv2GradeBook.tcl b/csv2GradeBook.tcl new file mode 100755 index 0000000..4fadb07 --- /dev/null +++ b/csv2GradeBook.tcl @@ -0,0 +1,64 @@ +#!/bin/sh +# (C) 2011 by Eugeniy Mikhailov, <evgmik@gmail.com> +# vim:set ft=tcl: \ +exec tclsh "$0" "$@" + +package require sqlite3 +package require md5 + +set class [lindex $argv 0] +if { $class eq "" } { + set class dummy_class +} + +set csvfile [lindex $argv 1] + +set dbfile $class + +sqlite3 db $dbfile + +proc dbg {msg {level 1}} { + if { $level <=2 } { + set fid [open log a+] + puts $fid $msg + close $fid + } +} + +proc htmlErrorMsg { msg } { + puts "<div class=\"errormsg\">error: $msg</div>" +} + +proc AddUserNonWeb { first_name last_name user_name password_hash {group_name {guest}} {id_number {}} {section_num {} } } { + set eval_str [concat INSERT INTO GradesTable (FirstName, LastName, UserName, PasswordHash, GroupName, IdNum, SectionNum) VALUES('$first_name', '$last_name', '$user_name', '$password_hash', '$group_name', '$id_number', '$section_num')] + set err [catch {db eval $eval_str } errStat] + if { $err } { + htmlErrorMsg $errStat + dbg "the following error happen: $errStat" 3 + } +} + + +#AddUserNonWeb first_name last_name user_name password_hash group_name id_number section_num i +# dummy users + +# expect the csv file with following fields +# sid, FName, LName, Section, email + +set fp [open $csvfile r] +while {-1 != [gets $fp line]} { + #puts "The current line is '$line'." + set data [split $line ,] + set id [lindex $data 0] + set fname [lindex $data 1] + set lname [lindex $data 2] + set sect [lindex $data 3] + set email [lindex $data 4] + #puts "$fname $lname $email {} student $id $sect" + AddUserNonWeb $fname $lname $email {} student $id $sect +} + + + + +# vim: ts=2 sw=2 foldmethod=indent: |