Mercurial > hgrepos > hgweb.cgi > s4
changeset 544:6039630ea2f5
add add-user-csv.sh
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Sat, 06 Apr 2019 19:56:15 +0900 |
parents | 29dcfb436600 |
children | 7cd9e895fa09 |
files | scripts/add-user-csv.sh |
diffstat | 1 files changed, 37 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/add-user-csv.sh Sat Apr 06 19:56:15 2019 +0900 @@ -0,0 +1,37 @@ +#!/bin/sh +# Usage: ./add-user-csv.sh CSVfile + +target=$(cd `dirname "$1"`; pwd)/`basename $1` + +cd `dirname $0`/.. +if ! . ./s4-funcs.sh; then + echo "Cannot find s4-funcs.sh, which should be located in $mydir/.." + exit 1 +fi + +sq $db<<-EOF | + .mode csv + CREATE TEMPORARY TABLE _newuser(user,email,gecos,inipswd); + .import $target _newuser + .mode list + .sepa , + SELECT * FROM _newuser n + WHERE NOT EXISTS (SELECT * FROM user WHERE name=n.user); + EOF +while IFS=, read user email gecos inipswd +do + encpswd=`echo $inipswd|mypwhash` + case "$user" in + *\'*) echo "Skipping [$user]" + continue ;; + *@*) ;; # OK + *) echo "Skipping [$user] because of lacking email pattern" >&2 + continue ;; + esac + # echo "$user" "$user" "$inipswd" "$encpswd" + query "INSERT INTO user VALUES('$user');" && + echo Adding $user + dbsetbyid user "$user" email "$email" + dbsetbyid user "$user" gecos "$gecos" + dbsetbyid user "$user" pswd "$encpswd" +done