#!/bin/sh

if [ $# -ne 1 ]
then
    echo "Usage : mkdb <TS>,<TS>,.."
    exit 1
fi

TSLIST=`echo $1 | sed 's/,/ /g'`

###############
# database defs
###############
DBXML=./db/chkdb.xml
DBNAME=chkdb
# PAGESIZE=256
# PAGESIZE=16384
# PAGESIZE=131072
# PAGESIZE=32768
PAGESIZE=8192
# PAGESIZE=4096
# PAGESIZE=2048
# PAGESIZE=1024
DBHOST=localhost
ADMPORT=2000
DBPORT=2200
LOGPORT=3000
PIDFILE=./db/pid
ADMINUSER=cgadm
ADMINPWD=cgadm

DEBUGLEVEL=DEBUG
# DEBUGLEVEL=NOTICE

### end of customizing ###

rm -rf db
mkdir db
rm -f $DBXML

echo "Creating xml ..."
cat > $DBXML <<EOF
<?xml version="1.0" ?>
<!DOCTYPE CEGO_DB_SPEC>
<DATABASE NAME="$DBNAME" PAGESIZE="$PAGESIZE" HOSTNAME="$DBHOST" ADMINPORT="$ADMPORT" LOGPORT="$LOGPORT" DATAPORT="$DBPORT"
PIDFILE="$PIDFILE"
NUMRECSEMA="2141" NUMSYSPAGESEMA="441" NUMDATAPAGESEMA="41" 
NUMIDXPAGESEMA="41" NUMRBPAGESEMA="2141" NUMDATAFILESEMA="11" NUMBUFFERPOOLSEMA="11"
MAXFIXTRIES="30" 
 CSMODE="ON" QESCMODE="ON" LOGMNGPROG="./cglogmng">
<MODULE NAME="ALL" LEVEL="$DEBUGLEVEL"></MODULE>
</DATABASE> 
EOF

# <MODULE NAME="CegoTableManager" LEVEL="NOTICE"></MODULE>
# <MODULE NAME="CegoAdminThreadPool" LEVEL="NOTICE"></MODULE>
# <MODULE NAME="CegoSelect" LEVEL="NOTICE"></MODULE>

CEGOPROG=../../src/cego

echo "Creating admin user ...\c"
$CEGOPROG --mode=adduser --dbxml=${DBXML} --user=${ADMINUSER}/${ADMINPWD} --role=admin

if [ $? -eq 0 ]
then
    echo "... operation ok"
else
    echo "... operation failed"
    exit 1
fi

echo "Creating role ...\c"
$CEGOPROG --mode=addrole --dbxml=${DBXML} --role=ALL

if [ $? -eq 0 ]
then
    echo "... operation ok"
else
    echo "... operation failed"
    exit 1
fi

for TS in $TSLIST
do
    
    echo "Creating role ...\c"
    $CEGOPROG --mode=addperm --dbxml=${DBXML} --permid=${TS}_P --role=ALL --tableset=$TS --filter="ALL" --perm="ALL" 
    
    if [ $? -eq 0 ]
    then
	echo "... operation ok"
    else
	echo "... operation failed"
	exit 1
    fi
done


for TS in $TSLIST
do

    TSROOT=./db
    TSTICKET=$TSROOT/${TS}ticket.xml
    SYSSIZE=100
    TMPSIZE=3000
    LOGFILESIZE=1000000
    LOGFILENUM=3
    APPFILE=$TSROOT/${TS}data01.dbf
    APPSIZE=10000
    SORTAREASIZE=10000000
    DBUSER=lemke
    DBPWD=lemke


    echo "Defining tableset $TS...\c"
    $CEGOPROG --mode=define --tableset=${TS} -dbxml=${DBXML} --tsdef="tsroot:${TSROOT},tsticket:${TSTICKET},syssize:${SYSSIZE},tmpsize:${TMPSIZE},logfilesize:${LOGFILESIZE},logfilenum:${LOGFILENUM},appfile:${APPFILE},appsize:${APPSIZE},sortareasize:${SORTAREASIZE}"
    if [ $? -eq 0 ]
    then
	echo "... operation ok"
    else
	echo "... operation failed"
	exit 1
    fi

    echo "Creating database user for $TS ...\c"
    $CEGOPROG --mode=adduser --dbxml=${DBXML} --user=${DBUSER}/${DBPWD} --role=ALL
    if [ $? -eq 0 ]
    then
	echo "... operation ok"
    else
	echo "... operation failed"
	exit 1
    fi

    echo "Creating tableset $TS...\c"
    $CEGOPROG --mode=create --dbxml=${DBXML} --tableset=${TS}
    if [ $? -eq 0 ]
    then
	echo "... operation ok"
    else
	echo "... operation failed"
	exit 1
    fi
done
