546
|
1 #!/bin/sh
|
|
2
|
|
3 if [ -z "$1" ]; then
|
|
4 cat<<-EOF >&2
|
|
5 Usage: $0 CSVfile
|
|
6 $0 -a CSVfile # for al
|
|
7 Csv file should be the form of:
|
|
8 GroupName,UserName(email)
|
|
9 EOF
|
|
10 exit 1
|
|
11 fi
|
548
|
12 cd `dirname $0`/..
|
|
13 if ! . ./s4-funcs.sh; then
|
|
14 echo "Cannot find s4-funcs.sh, which should be located in $mydir/.."
|
|
15 exit 1
|
|
16 fi
|
547
|
17
|
546
|
18 target=$(cd `dirname "$1"`; pwd)/`basename $1`
|
|
19
|
|
20 query<<-EOF
|
|
21 .mode csv
|
|
22 CREATE TEMPORARY TABLE _gusers(gname, user, admin);
|
|
23 .import $target _gusers
|
549
|
24 REPLACE INTO grp SELECT distinct gname FROM _gusers;
|
|
25
|
|
26 CREATE TEMPORARY TABLE _default_grp_attr(key, val);
|
|
27 INSERT INTO _default_grp_attr
|
|
28 VALUES ('tag', 'lecture'), ('mtime', datetime('now', 'localtime'));
|
|
29
|
|
30 REPLACE INTO grp_s
|
|
31 SELECT gname, key, 'string', val, NULL
|
|
32 FROM (SELECT distinct gname FROM _gusers)
|
|
33 JOIN _default_grp_attr;
|
|
34 REPLACE INTO grp_mem SELECT gname, user FROM _gusers;
|
|
35 REPLACE INTO grp_adm SELECT gname, user
|
|
36 FROM _gusers WHERE admin LIKE 'admin';
|
546
|
37 EOF
|