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 wrap: on
line source

#!/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

yatex.org