# HG changeset patch # User HIROSE Yuuji # Date 1554548175 -32400 # Node ID 6039630ea2f5b84e1506688e6697788aa0b17585 # Parent 29dcfb4366007603dce19c801c9cfd334d8732de add add-user-csv.sh diff -r 29dcfb436600 -r 6039630ea2f5 scripts/add-user-csv.sh --- /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