1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#!/bin/sh
# (C) 2011 by Eugeniy Mikhailov, <evgmik@gmail.com>
# vim:set ft=tcl: \
exec tclsh "$0" "$@"
package require sqlite3
package require md5
source ./GradeBook_lib.tcl
if { $argc < 2 } {
puts {Usage:}
puts " $argv0 database_name file_with_csv"
puts {}
puts { expect the csv file with following fields:}
puts { sid, FName, LName, Section, email}
puts {}
puts {Example:}
puts [concat " $argv0" { 2013_Spring_Phys742 roster.csv}]
exit
}
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 {group_name {guest}} {id_number {}} {section_num {} } } {
set eval_str [concat INSERT INTO GradesTable (FirstName, LastName, UserName, GroupName, IdNum, SectionNum) VALUES('$first_name', '$last_name', '$user_name', '$group_name', '$id_number', '$section_num')]
set err [catch {db eval $eval_str } errStat]
if { $err } {
htmlErrorMsg $errStat
dbg "the following error happen: $errStat" msg_level_critical
}
}
#AddUserNonWeb first_name last_name user_name password_hash group_name id_number section_num i
# dummy users
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:
|