#!/bin/bash
#
# * Copyright (C) 2007 - 2015 Hyperweb2 All rights reserved.
# * GNU General Public License version 3; see www.hyperweb2.com/terms/

echo "starting dump process.."
# check config from same folder and include only if exists
CONF_FILE=$MT_DIR"/mysql-config"
if [ -f "$CONF_FILE" ]; then
    source "$CONF_FILE"
fi;

#overwrite configs if file exists and variables are defined
if [ ! -z "$4" ]; then
    if [ -e "$4" ]; then
        source "$4"
    else # if 4th parameter is not a file, then try to eval
        eval "$4"
    fi;
fi;

source $MT_DIR"/shared-def"

if [ ! -z "$1" ]; then 
 MYSQL_DB=$1;
fi

#change group instead mod
#group=`ls -l tables | awk '{print $4}'`
#if [ $group != "mysql" ]; then
#    if (($CHMODE != 0)); then
#       sudo chgrp -v mysql $TPATH
#    fi
#fi

#change permissions for other users
if [ ! -z $TPATH ]; then
	if [ ! -d "$TPATH" ]; then
		#create the path recursively
		echo "creating dir: $TPATH.."
		mkdir -p "$TPATH"
	fi
	
	if (($CHMODE != 0)); then
		echo "changing permissions.."
		sudo chmod -v o=rwx $TPATH
	fi

	#clean old tables
	if (($CLEANFOLDER != 0)); then
		rm -rvf $TPATH/*
	fi
	
	if [ ! -z "$2" ]; then 
	#if tables are specified in parameters then..
		arr=$(echo $2 | tr "," "\n")

		for T in $arr
		do
			echo "exporting "$T;
			if (($TEXTDUMPS != 1)); then
				FILE="$TPATH/$T.sql"
				if [ -f $FILE ]; then
					rm -f $FILE
				fi

                                if (($PARSEDUMP != 0)); then
                                    echo "Parsing enabled";
                                    eval "$MYSQLDUMP$OPTS $DUMPOPTS '$MYSQL_DB' '$T' | $DUMPPARSER > $FILE"
                                else
                                    eval "$MYSQLDUMP$OPTS $DUMPOPTS '$MYSQL_DB' '$T' -r $FILE"
                                fi
			else
				echo $(eval "$MYSQLDUMP$OPTS $DUMPOPTS --tab=$TPATH/ '$MYSQL_DB' '$T'")
			fi
		done
		
	else 
	#else get all tables from selected db
			CMD="$MYSQL$OPTS -N -B -e 'show tables from \`$MYSQL_DB\`'"
			echo "command: "$CMD
			for T in $(eval $CMD)
			do 
				if (($TEXTDUMPS != 1)); then
					echo "exporting "$T;
					FILE="$TPATH/$T.sql"
					if [ -f $FILE ]; then
						rm -f $FILE
					fi

                                        if (($PARSEDUMP != 0)); then
                                            echo "Parsing enabled on file "$FILE;
                                            eval "$MYSQLDUMP$OPTS $DUMPOPTS '$MYSQL_DB' '$T' | $DUMPPARSER > $FILE"
                                        else
                                            eval "$MYSQLDUMP$OPTS $DUMPOPTS '$MYSQL_DB' '$T' -r $FILE"
                                        fi
				else
					echo "exporting "$MYSQL_DB" tables: "$T;
					echo $(eval "$MYSQLDUMP$OPTS $DUMPOPTS --tab=$TPATH/ '$MYSQL_DB' '$T'")
				fi
			done;

	fi
fi

if [ ! -z "$3" ]; then FULL=$3; fi
# export full file if option is enabled
if (($FULL != 0)); then   
	echo 'exporting FULL '$MYSQL_DB' in single file';
	rm -f $FPATH

        if (($PARSEDUMP != 0)); then
            echo "Parsing enabled";
            eval "$MYSQLDUMP$OPTS $DUMPOPTS '$MYSQL_DB' | $DUMPPARSER > $FPATH"
        else
            eval "$MYSQLDUMP$OPTS $DUMPOPTS '$MYSQL_DB' -r $FPATH"
        fi
fi