##################### # THE COPY FUNCTION # ##################### function copy() { POSIT=() while [[ $# -gt 0 ]]; do KEY="$1" case $KEY in -o|--oldname) OLDNAME=$2; shift;; -n|--newname) NEWNAME=$2; shift;; -s|--source) SOURCE=$2; shift;; -d|--destination) DESTDIR=$2; shift ;; *) echo "$1 not implemented" ; POSIT+=("$1") ;; esac shift done set -- "${POSIT[@]}" [ -d $SOURCE ] || echo "source directory does not exist" [ -d $SOURCE ] || exit 1 [ -f $SOURCE/wp-config.php ] || echo "this isn't a wordpress installation" [ -f $SOURCE/wp-config.php ] || exit 1 local DATETIME=`date +%Y%m%d.%H%M` echo "==WPM COPY CALLED ON $DATETIME WITH VERSION $WPVERSION==" | tee -a $LOGFILE echo "==UNIQUE IDENTIFIER $INSTANCEID==" | tee -a $LOGFILE echo "==$INSTANCEID==Executing copy from $SOURCE to $DESTDIR" | tee -a $LOGFILE [ -d $DESTDIR ] || try mkdir -p $DESTDIR try rsync -aq $SOURCE/* $DESTDIR echo "==$INSTANCEID==File copy complete." | tee -a $LOGFILE cd $DESTDIR local DBNAME=`grep DB_NAME wp-config.php | awk -F "'" '{print $4}'` local DBUSER=`grep DB_USER wp-config.php | awk -F "'" '{print $4}'` echo "==$INSTANCEID==Database $DBNAME with user $DBUSER." | tee -a $LOGFILE if mysql "${DBNAME}" >/dev/null 2>&1 $TEMPDIR/$DBNAME.sql echo "==$INSTANCEID==DB dump to SQL file is complete." | tee -a $LOGFILE echo "==$INSTANCEID==Changing $SOURCE to $DESTDIR with sed" | tee -a $LOGFILE try find `pwd` -type f -exec sed -i "s/$SOURCE/$DESTDIR/g" '{}' \; try sed -i "s|$SOURCE|$DESTDIR|g" $TEMPDIR/$DBNAME.sql echo "==$INSTANCEID==Sed complete." | tee -a $LOGFILE echo "==$INSTANCEID==Running fixserial on $TEMPDIR/$DBNAME.sql" | tee -a $LOGFILE try /usr/local/lib/fixserial.sh -o $OLDNAME -n $NEWNAME -f $TEMPDIR/$DBNAME.sql echo "==$INSTANCEID==Fixserial has been run." | tee -a $LOGFILE [ -e "$SOURCE/.htaccess" ] && cp -v $SOURCE/.htaccess $DESTDIR/.htaccess [ -d "$SOURCE/.ssh" ] && cp -vR $SOURCE/.ssh $DESTDIR/ [ -e "$SOURCE/wp-content/uploads/.htaccess" ] && cp -v $SOURCE/wp-content/uploads/.htaccess $DESTDIR/wp-content/uploads/.htaccess echo "==$INSTANCEID==Dot files copied (if they existed)." | tee -a $LOGFILE local NEWDB=${DBNAME} NEWDB+=`openssl rand -hex 2` echo "==$INSTANCEID==New database name is ${NEWDB}" | tee -a $LOGFILE if mysql "${NEWDB}" >/dev/null 2>&1