s4

view scripts/add-group-csv.sh @ 936:789258aa857a

Fix for adding to other world
author HIROSE Yuuji <yuuji@gentei.org>
date Thu, 29 Apr 2021 15:43:33 +0900
parents 2a48690b8cbc
children
line source
1 #!/bin/sh
3 if [ -z "$1" ]; then
4 cat<<-EOF >&2
5 Usage: $0 CSVfile
6 DB=db/world.sq3 $0 CSVfile # for other world
7 Csv file should be the form of:
8 GroupName,UserName(email)
9 or
10 GroupName,UserName(email),admin
11 EOF
12 exit 1
13 fi
14 cd `dirname $0`/..
15 if ! . ./s4-funcs.sh; then
16 echo "Cannot find s4-funcs.sh, which should be located in $mydir/.."
17 exit 1
18 fi
20 target=$(cd `dirname "$1"`; pwd)/`basename $1`
22 echo target=$target
23 echo DB=$DB
24 echo -n 'Proceed? (Ctrl-C to break)'
25 read x
27 query<<-EOF
28 .mode csv
29 CREATE TEMPORARY TABLE _gusers(gname, user, admin);
30 .import $target _gusers
31 REPLACE INTO grp SELECT distinct gname FROM _gusers;
33 CREATE TEMPORARY TABLE _default_grp_attr(key, val);
34 INSERT INTO _default_grp_attr
35 VALUES ('tag', 'lecture'), ('mtime', datetime('now', 'localtime'));
37 REPLACE INTO grp_s
38 SELECT gname, key, 'string', val, NULL
39 FROM (SELECT distinct gname FROM _gusers)
40 JOIN _default_grp_attr;
41 REPLACE INTO grp_mem SELECT gname, user FROM _gusers;
42 REPLACE INTO grp_adm SELECT gname, user
43 FROM _gusers WHERE admin LIKE 'admin';
44 EOF