Mercurial > hgrepos > hgweb.cgi > s4
changeset 561:593e5ae3bd49
add trans-user.sh
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Sun, 14 Apr 2019 14:27:04 +0900 |
parents | 1d0344a5f5aa |
children | 3b5561ea2117 |
files | scripts/trans-user.sh |
diffstat | 1 files changed, 40 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/trans-user.sh Sun Apr 14 14:27:04 2019 +0900 @@ -0,0 +1,40 @@ +#!/bin/sh + +while getopts r i; do + case $i in + r) mode=restore ;; + esac +done +shift $((OPTIND - 1)) + +if [ -z "$2" ]; then + cat<<-EOF >&2 + Usage: + $0 DB out.csv user(s) - dump users to out.csv + $0 -r DB out.csv - import nonexistent user from out.csv + EOF + exit 1 +fi + +target=$(cd `dirname "$1"`; pwd)/`basename $1` + +db=$1 +shift +out=$1 +shift + +if [ x"$mode" = x"restore" ]; then + echo "begin;" + echo ".read $out" + echo "end;" +else + echo ".output $out" + for u; do + echo ".mode insert user" + echo "SELECT * FROM user WHERE name LIKE '$u';" + echo ".mode insert user_s" + echo "SELECT * FROM user_s WHERE name LIKE '$u';" + echo ".mode insert user_m" + echo "SELECT * FROM user_m WHERE name LIKE '$u';" + done +fi | sqlite3 $db