#!/bin/bash
####################################################################
# vBulletin 4.1.7 - Licence Number 239149d8
# ---------------------------------------------------------------- #
# Copyright ©2000–2011 vBulletin Solutions Inc. All Rights Reserved.
# This file may not be redistributed in whole or significant part. #
# ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- #
# http://www.vbulletin.com | http://www.vbulletin.com/license.html #
####################################################################

# Geben Sie hier den Pfad zu Ihrer config.php an
path_to_config="/home/example/htdocs/includes/config.php"

# Wenn Sie den vollstaendigen Pfad zu mysqldump oder gzip angeben muessen, koennen Sie das hier tun.
mysqldumpcmd=mysqldump
gzipcmd=gzip

################# AB HIER NICHTS MEHR AENDERN! #################

if [ ! -e "$path_to_config" ]
then
	echo "$path_to_config doesn't exist"
	exit 1
fi

servername=`perl -n -e "if (/MasterServer']\['servername'\]\s*=\s*'(.*)'/) { print \\$1; } else { print ''; }" $path_to_config`
dbusername=`perl -n -e "if (/MasterServer']\['username'\]\s*=\s*'(.*)'/) { print \\$1; } else { print ''; }" $path_to_config`
dbpassword=`perl -n -e "if (/MasterServer']\['password'\]\s*=\s*'(.*)'/) { print \\$1; } else { print ''; }" $path_to_config`
dbname=`perl -n -e "if (/Database']\['dbname'\]\s*=\s*'(.*)'/) { print \\$1; } else { print ''; }" $path_to_config`

if [ ! -n "$servername" ]
then
        echo "Servername kann nicht gelesen werden"
        exit 1
fi

if [ ! -n "$dbusername" ]
then
        echo "Benutzername der Datenbank kann nicht gelesen werden"
        exit 1
fi

if [ ! -n "$dbname" ]
then
        echo "Name der Datenbank kann nicht gelesen werden"
        exit 1
fi

date=`date "+%d-%m-%y"`
database="${dbname}-${date}.sql"

case "$1" in
	backup)
		if [ -n "$dbpassword" ]
		then
			passwordinfo=-p$dbpassword
		fi
		$mysqldumpcmd -h$servername -u$dbusername $passwordinfo --add-drop-table --add-locks --all --extended-insert --quick --compress $dbname > $database
		$gzipcmd $database
	;;

	*)
		echo "vb_backup.sh: vBulletin Datenbank-Backup-Skript."
		echo "Bitte verwenden Sie den folgenden Befehl, um ein Backup Ihrer vBulletin-Datenbank zu erstellen:"
		echo "./vb_backup.sh backup"
	;;
esac
exit 0