#!/bin/bash function usage() { echo "~~~~~~~~~~~" echo " U S A G E" echo "~~~~~~~~~~~" echo "Usage: migrate-actors.bash [option]" echo " options:" echo " -db : Database" echo " -dbp : Database prefix" echo " -s : MySQL server" echo " -u : MySQL user" echo " -p : MySQL password" echo " -i : The userid of the migration user" echo "" exit 1 } function missingparam() { echo "Missing required parameter '$1'" usage } while [ "$1" != "" ]; do case $1 in -h | --help ) usage exit ;; -db | --database ) shift database=$1 ;; -dbp | --database-prefix ) shift prefix=$1 ;; -s | --server ) shift host=$1 ;; -u | --user ) shift user=$1 ;; -p | --password ) shift password=$1 ;; -i | --user-id ) shift userid=$1 ;; * ) usage exit 1 esac shift done # Parameter checks if [[ -z $database ]]; then missingparam "database" fi if [[ -z $user ]]; then missingparam "user" fi if [[ -z $password ]]; then missingparam "password" fi if [[ -z $userid ]]; then missingparam "userid" fi # Check if the userid is actually a numeric value: reg='^[0-9]+$' if ! [[ $userid =~ $reg ]] ; then echo "Error: Did not retrieve a valid userid: $userid" >&2; exit 1 fi # Execute SQL queries: if [[ -z $prefix ]]; then mysql --host="$host" --user="$user" --password="$password" --database="$database" --execute="INSERT INTO revision_actor_temp (revactor_rev, revactor_actor, revactor_timestamp, revactor_page) SELECT rev_id, $userid as actor, rev_timestamp, rev_page FROM revision WHERE rev_id NOT IN (SELECT revactor_rev FROM revision_actor_temp);" exit 0 else mysql --host="$host" --user="$user" --password="$password" --database="$database" --execute="INSERT INTO ${prefix}revision_actor_temp (revactor_rev, revactor_actor, revactor_timestamp, revactor_page) SELECT rev_id, $userid as actor, rev_timestamp, rev_page FROM ${prefix}revision WHERE rev_id NOT IN (SELECT revactor_rev FROM ${prefix}revision_actor_temp);" fi