#!/bin/sh

#############################################################################
### thordbsize - size of Thor database
### Author: Jeremy Yang
###  19 Sep 1997
#############################################################################

if [ $# != 1 ] ; then
  echo "usage: `basename $0` dbname"
  echo "e.g.,  `basename $0` \$DY_THORDB/test"
  exit 1
fi

DBDIR=`dirname $1`

DTDB=`grep datatypes $1.THOR`

DTDB=`echo $DTDB  | sed -e 's/^.*://'`
DTDB=`echo $DTDB  | sed -e 's/ //g'`
DTDB=`echo $DTDB  | sed -e 's/\.THOR//'`
DTDB=`echo echo $DTDB  | sh`
DTDIR=`dirname $DTDB`
if [ "$DTDIR" = "." ]; then
	DTDB=${DBDIR}/${DTDB}
fi

echo "Computing size of ${DTDB}.THOR+DP+DX+HP+HX:"

THORsize=`/bin/ls -l $DTDB.THOR | awk '{print $5}'`
DPsize=`/bin/ls -l $DTDB.DP | awk '{print $5}'`
DXsize=`/bin/ls -l $DTDB.DX | awk '{print $5}'`
HPsize=`/bin/ls -l $DTDB.HP | awk '{print $5}'`
HXsize=`/bin/ls -l $DTDB.HX | awk '{print $5}'`

DTDBsize=`echo $THORsize "+" $DPsize "+" $DXsize "+" $HPsize "+" $HXsize | bc`
echo "$DTDBsize bytes"

IDB=`grep indirect $1.THOR`
IDB=`echo $IDB  | sed -e 's/^.*://'`
IDB=`echo $IDB  | sed -e 's/ //g'`
IDB=`echo $IDB  | sed -e 's/\.THOR//'`
IDB=`echo echo $IDB  | sh`

if [ "$IDB" != "" ]; then
  IDIR=`dirname $IDB`
  if [ "$IDIR" = "." ]; then
	IDB=${DBDIR}/${IDB}
  fi

  echo "Computing size of $IDB.THOR+DP+DX+HP+HX:"

  THORsize=`/bin/ls -l $IDB.THOR | awk '{print $5}'`
  DPsize=`/bin/ls -l $IDB.DP | awk '{print $5}'`
  DXsize=`/bin/ls -l $IDB.DX | awk '{print $5}'`
  HPsize=`/bin/ls -l $IDB.HP | awk '{print $5}'`
  HXsize=`/bin/ls -l $IDB.HX | awk '{print $5}'`

  IDBsize=`echo $THORsize "+" $DPsize "+" $DXsize "+" $HPsize "+" $HXsize | bc`
  echo "$IDBsize bytes"
else
  echo "No indirect db..."
  IDBsize=0
fi

MONODB=`grep monomertable $1.THOR`
MONODB=`echo $MONODB  | sed -e 's/^.*://'`
MONODB=`echo $MONODB  | sed -e 's/ //g'`
MONODB=`echo $MONODB  | sed -e 's/\.THOR//'`
MONODB=`echo echo $MONODB  | sh`

if [ "$MONODB" != "" ]; then

  MONODIR=`dirname $MONODB`
  if [ "$MONODIR" = "." ]; then
	MONODB=${DBDIR}/${MONODB}
  fi

  echo "Computing size of $MONODB.THOR+DP+DX+HP+HX:"

  THORsize=`/bin/ls -l $MONODB.THOR | awk '{print $5}'`
  DPsize=`/bin/ls -l $MONODB.DP | awk '{print $5}'`
  DXsize=`/bin/ls -l $MONODB.DX | awk '{print $5}'`
  HPsize=`/bin/ls -l $MONODB.HP | awk '{print $5}'`
  HXsize=`/bin/ls -l $MONODB.HX | awk '{print $5}'`

  MONODBsize=`echo $THORsize "+" $DPsize "+" $DXsize "+" $HPsize "+" $HXsize | bc`
  echo "$MONODBsize bytes"
else
  echo "No monomertable..."
  MONODBsize=0
fi

echo "Computing size of $1.THOR+DP+DX+HP+HX:"

THORsize=`/bin/ls -l $1.THOR | awk '{print $5}'`
DPsize=`/bin/ls -l $1.DP | awk '{print $5}'`
DXsize=`/bin/ls -l $1.DX | awk '{print $5}'`
HPsize=`/bin/ls -l $1.HP | awk '{print $5}'`
HXsize=`/bin/ls -l $1.HX | awk '{print $5}'`

RDBsize=`echo $THORsize "+" $DPsize "+" $DXsize "+" $HPsize "+" $HXsize | bc`
echo "$RDBsize bytes"

TOTALsize=`echo $DTDBsize "+" $IDBsize "+" $MONODBsize "+" $RDBsize | bc`

MB=`echo "scale=2;" $TOTALsize "/ 1000000" | bc`
echo "Total size = $TOTALsize bytes ($MB MB)"
