s4

view scripts/add-user-csv.sh @ 544:6039630ea2f5

add add-user-csv.sh
author HIROSE Yuuji <yuuji@gentei.org>
date Sat, 06 Apr 2019 19:56:15 +0900
parents
children 7cd9e895fa09
line source
1 #!/bin/sh
2 # Usage: ./add-user-csv.sh CSVfile
4 target=$(cd `dirname "$1"`; pwd)/`basename $1`
6 cd `dirname $0`/..
7 if ! . ./s4-funcs.sh; then
8 echo "Cannot find s4-funcs.sh, which should be located in $mydir/.."
9 exit 1
10 fi
12 sq $db<<-EOF |
13 .mode csv
14 CREATE TEMPORARY TABLE _newuser(user,email,gecos,inipswd);
15 .import $target _newuser
16 .mode list
17 .sepa ,
18 SELECT * FROM _newuser n
19 WHERE NOT EXISTS (SELECT * FROM user WHERE name=n.user);
20 EOF
21 while IFS=, read user email gecos inipswd
22 do
23 encpswd=`echo $inipswd|mypwhash`
24 case "$user" in
25 *\'*) echo "Skipping [$user]"
26 continue ;;
27 *@*) ;; # OK
28 *) echo "Skipping [$user] because of lacking email pattern" >&2
29 continue ;;
30 esac
31 # echo "$user" "$user" "$inipswd" "$encpswd"
32 query "INSERT INTO user VALUES('$user');" &&
33 echo Adding $user
34 dbsetbyid user "$user" email "$email"
35 dbsetbyid user "$user" gecos "$gecos"
36 dbsetbyid user "$user" pswd "$encpswd"
37 done