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

yatex.org