#!/bin/bash

get_data()
{
   export PGPASSWORD=$origpass
   echo "$1" | sed -e "s@par1@$2@" -e "s@par2@$3@" -e "s@par3@$4@" | psql --tuples-only --no-align -E -h $orighost -p $origport -U $origuser $origdb
}

get_checkdata()
{
   export PGPASSWORD=$checkpass
   echo "$1" | sed -e "s@par1@$2@" -e "s@par2@$3@" -e "s@par3@$4@" | psql --tuples-only --no-align -E -h $checkhost -p$checkport -U $checkuser $checkdb
}

echo -n "Password for admindb: "
stty -echo < /dev/tty
read origpass
stty echo < /dev/tty
echo

checkpass="$origpass"

while [ $# -gt 0 ] ; do
  case $1 in
    -sdb)   origdb=$2; shift 2;;              # source db
    -shost) orighost=$2; shift 2;;            # source host
    -spass) origpass=$2; shift 2;;            # source password
    -ddb)   checkdb=$2; shift 2;;             # dest db
    -dhost) checkhost=$2; shift 2;;           # dest host
    -dpass) checkpass=$2; shift 2;;           # dest passwd
    -o)     output=$2; shift 2;;              # augabe datei
     *)     shift 1 ;;
  esac
done

rm -f $output

export PGPASSWORD=$origpass
psql --username=$origuser --host=$orighost $origdb << EOF
    DROP DATABASE $checkdb;
EOF

psql --username=$origuser --host=$orighost --set ON_ERROR_STOP=on $origdb << EOF
    CREATE DATABASE $checkdb 
        WITH OWNER = admindb 
        ENCODING = 'UTF8' 
        TABLESPACE = pg_default 
        TEMPLATE = template0 
        LC_COLLATE = 'C' 
        LC_CTYPE = 'C' 
        CONNECTION LIMIT = -1; 
        
       REVOKE ALL ON DATABASE $checkdb FROM PUBLIC;
       GRANT ALL ON DATABASE $checkdb TO admindb; 
EOF

if [ $? != 0 ]; then
    exit 1
fi

rm -f origdb.sql
pg_dump    --username=$origuser --host=$orighost --disable-triggers --format=c $origdb > origdb.sql
pg_restore --username=$origuser --host=$orighost --disable-triggers --schema-only --dbname=$checkdb < origdb.sql
pg_restore --username=$origuser --host=$orighost --disable-triggers --data-only   --dbname=$checkdb < origdb.sql
rm origdb.sql

psql --username=$origuser --host=$orighost $checkdb <<EOF >/dev/null 2>&1
DROP SCHEMA mne_application_save CASCADE;
EOF
