#/bin/bash
POSTGRES_DIR="~/Documents/postgres"
SOURCE_DB="$POSTGRES_DIR"/"pd_data_source"
DESTINATION_DB="$POSTGRES_DIR"/"pd_data_destination"
echo "$POSTGRES_DIR"
echo $SOURCE_DB
echo $DESTINATION_DB

# DB setup
if [[ $1 -eq 1 ]]; then
    set -x
    #stop  server 1
    pg_ctl -D "$SOURCE_DB" -o "-p 5432" stop -m immediate > /dev/null 2>&1

    #stop  server 2
    pg_ctl -D "$DESTINATION_DB" -o "-p 5433" stop -m immediate > /dev/null 2>&1
    sleep 5;
    s
    rm -rf "$SOURCE_DB"/*
    rm -rf "$DESTINATION_DB"/*

    initdb -D "$SOURCE_DB"/
    sleep 5;
    echo "wal_level = logical" >> "$SOURCE_DB"/postgresql.conf


    #start server 1
    pg_ctl -D "$SOURCE_DB" -o "-p 5432" start -l "$SOURCE_DB"/logfile > /dev/null 2>&1
   

    #start server 2
    initdb -D "$DESTINATION_DB"/
    sleep 12;
    echo "port = 5433" >> "$DESTINATION_DB"/postgresql.conf
    echo "wal_level = logical" >> "$DESTINATION_DB"/postgresql.conf
    pg_ctl -D "$DESTINATION_DB" -o "-p 5433" start -l "$POSTGRES_DIR"/logfile2 > /dev/null 2>&1
    sleep 5;


    SOURCE_CONN="psql -h localhost -p 5432 -U kedaranavardekar -d postgres"
    DESTINATION_CONN="psql -h localhost -p 5433 -U kedaranavardekar -d postgres"
    

    echo "create database src;" | eval "$SOURCE_CONN" > /dev/null 2>&1
    echo "create database dest;" | eval "$DESTINATION_CONN" > /dev/null 2>&1
fi

# Test insert conflict insertion in CLT
if [[ $1 -eq 2 ]]; then

    SOURCE_CONN="psql -h localhost -p 5432 -U kedaranavardekar -d src ; echo "
    DESTINATION_CONN="psql -h localhost -p 5433 -U kedaranavardekar -d dest ; echo "

   
    echo "drop table IF EXISTS public.t1;" | eval "$SOURCE_CONN"
    echo "create table public.t1(i int primary key);" | eval "$SOURCE_CONN"


    echo "DROP publication IF EXISTS pub;" | eval "$SOURCE_CONN"
    echo "Create publication pub for table public.t1;" | eval "$SOURCE_CONN" 
    sleep 2;
 
    echo "drop table IF EXISTS public.t1;" | eval "$DESTINATION_CONN"
    echo "create table public.t1(i int primary key);" | eval "$DESTINATION_CONN"

    sleep 2;

    echo "DROP subscription IF EXISTS sub;" | eval "$DESTINATION_CONN"
    sleep 3;

    echo "create subscription sub connection 'host=localhost dbname=src user=kedaranavardekar' publication pub WITH(conflict_log_destination='table');" | eval "$DESTINATION_CONN"
    sleep 2;

    set -x

    echo "insert into t1 values(1)" | eval "$SOURCE_CONN"
    echo "insert into t1 values(2)" | eval "$SOURCE_CONN"
    echo "insert into t1 values(3)" | eval "$SOURCE_CONN"
    echo "insert into t1 values(3)" | eval "$SOURCE_CONN"

    echo "insert into t1 values(4)" | eval "$DESTINATION_CONN"
    echo "insert into t1 values(5)" | eval "$DESTINATION_CONN"

    echo "insert into t1 values(4)" | eval "$SOURCE_CONN"
    echo "insert into t1 values(5)" | eval "$SOURCE_CONN"

fi

