#!/bin/sh
#
# BAREOS® - Backup Archiving REcovery Open Sourced
#
# Copyright (C) 2000-2011 Free Software Foundation Europe e.V.
# Copyright (C) 2013-2019 Bareos GmbH & Co. KG
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of version three of the GNU Affero General Public
# License as published by the Free Software Foundation and included
# in the file LICENSE.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#
# This scripts drops the Bareos tables for PostgreSQL, Ingres, MySQL, or SQLite.
#

#
# Source the Bareos config functions.
#

# change to root dir
cd /


. /usr/pkg/lib/bareos/scripts/bareos-config-lib.sh

db_name="${db_name:-`get_database_name bareos`}"
db_user="${db_user:-`get_database_user bareos`}"
default_db_type=`get_database_driver_default`
working_dir=`get_working_dir`

#
# See if the first argument is a valid backend name.
# If so the user overrides the default database backend.
#
if [ $# -gt 0 ]; then
   case $1 in
      sqlite3)
         db_type=$1
         shift
         ;;
      mysql)
         db_type=$1
         shift
         ;;
      postgresql)
         db_type=$1
         shift
         ;;
      *)
         ;;
   esac
fi

#
# If no new db_type is gives use the default db_type.
#
if [ -z "${db_type}" ]; then
   db_type="${default_db_type}"
fi

echo "Dropping ${db_type} database"

bindir=`get_database_utility_path ${db_type}`
if [ ! -z "${bindir}" ]; then
   PATH="$bindir:$PATH"
fi
PATH="$bindir:$PATH"

case ${db_type} in
   sqlite3)
      rm -f ${working_dir}/${db_name}.db
      retval=0
      ;;
   mysql)
      mysql $* -e "DROP DATABASE ${db_name};"
      retval=$?
      ;;
   postgresql)
      dropdb $* ${db_name}
      retval=$?
      ;;
esac

if [ ${retval} = 0 ]; then
   echo "Drop of ${db_name} database succeeded."
else
   echo "Drop of ${db_name} database failed."
fi

exit ${retval}
