#!/bin/bash

if [ "$1" == "" ]; then
  echo "Использование: `basename $0` database"
  echo " database - путь к базе данных, относительно каталога data, например mydb/mydb"
  exit 1
fi

cd `dirname $0`
if [ -f dbparams ]; then
  source dbparams
else
  startfolder=/home/db
  IBPATH=/opt/firebird
  IBUSER=sysdba
  IBPASS=masterkey
  pagesize=4096
  dbowner=fbadmin
  dbgroup=firebird
fi
	      
DATADIR=$startfolder/data
dbname=${1%%\.gdb}

echo "GFix started..."
$IBPATH/bin/gfix $DATADIR/$dbname.gdb -mend -full -user $IBUSER -pass $IBPASS

if [ $? -ne 0 ]; then
  echo "GFix error"
  exit;
fi
    
echo "Backup started..."
$IBPATH/bin/gbak -B -G -T $DATADIR/$dbname.gdb $DATADIR/$dbname.gbk -USER $IBUSER -PAS $IBPASS
if [ $? -ne 0 ]; then
  echo "Backup error"
  exit 1;
fi

echo "Restore started..."
$IBPATH/bin/gbak -C -R -P $pagesize -REP $DATADIR/$dbname.gbk /$DATADIR/$dbname.gdb -USER $IBUSER -PAS $IBPASS
if [ $? -ne 0 ]; then
  echo "Restore error"
  exit 1;
fi
chown $dbowner.$dbgroup $DATADIR/$dbname.gdb
chmod g+w $DATADIR/$dbname.gdb
rm -f $DATADIR/$dbname.gbk
echo "Done"
