:	'(c) Copyright	Empress Software Inc.	1983, 2000.'

USAGE="*** Usage ***  $0  : This script is for Empress internal use only"

case "$CNVDB" in
 "")
	echo "$USAGE"
	rm -fr $WDIR
	exit 1
	;;
esac

. $EMPRESSPATH/config/options

 
case "$TESTMODE" in
 yes)
	MSINST_OLDVERS=$TESTOLDVER
	MSINST_OLDVERSPATH=$TESTOLDPATH
	CURRENT_VERSION=$TESTVER
	;;
esac

UE_E0_CVV2_INFO1=10150
UE_E0_CVV2_INFO4=10174
UE_E0_CVV2_INFO6=10176
UE_E0_CV_4GL2=10325
UE_E0_CV_COMLINK=10327
UE_E0_CV_CRTDB=10321
UE_E0_CV_DATA=10322
UE_E0_CV_OLD4GL=10326
UE_E0_CV_PRV1=10319
UE_E0_CV_PRV2=10324
UE_E0_CV_RECOMP=10314
UE_E0_CV_RNMB=10318
UE_E0_CV_SYS1=10320
UE_E0_CV_SYS2=10323
UE_E0_CV_TABZERO=10313
UE_E0_NOTADB=10016
UI_E0_CONVEND=10132
UI_E0_CONVERDONE=10057

case "$MSINST_OLDVERS" in
  "")    $NLSECHO "
	Sorry, during installation you did not mention that your current version
	of Empress is an upgrade from an older version. You should:
	   change directory to %s, and
	   run the script \'%s\'
	to configure the conversion utilities.
	Aborting.
	" $UE_E0_CVV2_INFO6 $EMPRESSPATH/rdbms empugprd
	  exit 1
	  ;;
esac

case "$MSINST_OLDVERSPATH" in
 "")
	  $NLSECHO "Older version of Empress installation is not valid" $UE_E0_CVV2_INFO1
	   exit 1
	   ;;
esac

case "$BACKGROUND" in
 yes)	exec > $OUTFILE 2>&1
	;;
esac

CNVTUTIL="$EMPRESSPATH/rdbms/exec/emputil3 -CNVTDB_SUPPORT"

export CNVDB_VER MBUILDER

if test -f "$CNVDB"/tablezero
then
	: "Test to see if the database is Version 2 database"
	
	if grep "MSDBINDEXTABLES" "$CNVDB"/tablezero > /dev/null 2>&1
	then
		CNVDB_VER=v2.4
		$EMPRESSPATH/rdbms/cnvt_bin/mscmd "$CNVDB" "display mbuilder_link" > $TMP 2>&1
		if grep "User Error" $TMP > /dev/null 2>&1
		then
			MBUILDER=$FALSE
		else
			: "Only set MBUILDER if user want to convert 4gl"
			case "$EMP4GL" in
			   y*)
				MBUILDER=$TRUE ;;
			   * )
				MBUILDER=$FALSE ;;
			esac
		fi
	elif grep "1990" "$CNVDB"/tablezero > /dev/null 2>&1
	then
		CNVDB_VER=v4.3
	else
		CNVDB_VER=v4.0
	fi
else
	if test -f "$CNVDB"/tabzero
	then
		if grep "MSDBVERSION=" "$CNVDB"/tabzero > /dev/null 2>&1
		then
			if grep "MSDBVERSION=$CURRENT_VERSION" "$CNVDB"/tabzero > /dev/null 2>&1
			then
			   $NLSECHO "Database %s has already been converted \
				to %s database ..." $UI_E0_CONVEND $CNVDB $CURRENT_VERSION
				rm -fr $WDIR
				exit 1
			else
				grep MSDBVERSION "$CNVDB"/tabzero > $TMP 
				. $TMP
				CNVDB_VER=$MSDBVERSION
			fi
		fi
	else
		$NLSECHO  "*** User Error ***  %s is not a database" \
					$UE_E0_NOTADB $CNVDB
		rm -fr $WDIR
		exit 1
	fi
fi

MSQLCOUNT=
export MSQLCOUNT CNVDB_VER

PRIV_SAVE=$WDIR/priv_save
APRIV_SAVE=$WDIR/apriv_save
CRT_SAVE=$WDIR/crt_save

EX_DB=$WDIR/ex_db
EX_TB=$WDIR/ex_tb

$EMPRESSPATH/rdbms/cnvt_bin/msclearlock "$CNVDB"

case "$MBUILDER" in
 yes )
	echo
	$NLSECHO  "Rename Mbuilder tables ..." $UE_E0_CV_RNMB
	EXEC=$EMPRESSPATH/rdbms/cnvt_bin/msbatch

	if test -f $EXEC
	then
		$EXEC "$CNVDB" < $EMPRESSPATH/rdbms/cnvt_bin/empcvv1.ms
	else
		$NLSECHO "The file %s can not be found." $UE_E0_CVV2_INFO4 $EXEC
		rm -fr $WDIR
		exit 1
	fi
	;;
esac

case "$CNVDB_VER" in
  v2* )
	 echo  
	 $NLSECHO  "Convert privileges  phase 1 ..." $UE_E0_CV_PRV1
	 if $CNVTUTIL -CNVTXPRV "$CNVDB" "$PRIV_SAVE" "$APRIV_SAVE" > /dev/null 
	 then
		:
	 else
		rm -fr $WDIR
		exit  1
	 fi
	;;
esac


echo
$NLSECHO  "Convert system tables information phase 1 ..." $UE_E0_CV_SYS1
if $CNVTUTIL -CNVTXCRT "$CNVDB" "$CRT_SAVE" > /dev/null
then
	:
else
	rm -fr $WDIR
	exit 1
fi

echo
$NLSECHO  "Creating working database ..." $UE_E0_CV_CRTDB
case "$DBLOCK" in
 yes )
	$EMPRESSPATH/bin/empmkdb "$NEWDB" > /dev/null
	;;
 * )
	$EMPRESSPATH/bin/empmkdb -n "$NEWDB" > /dev/null
	;;

esac

echo
$NLSECHO  "Converting data ... please wait" $UE_E0_CV_DATA
if $CNVTUTIL -CNVTEXIM "$CNVDB" "$NEWDB" "$EX_DB" "$EX_TB"  
then
	rm $EX_DB $EX_TB 
	OLDDB=$CNVDB
	CNVDB=$NEWDB
	export CNVDB 
else
	rm -fr $WDIR $NEWDB
	exit 1
fi

echo
$NLSECHO  "Convert system tables information phase 2 ..." $UE_E0_CV_SYS2
if $CNVTUTIL -CNVTICRT "$CNVDB" "$CRT_SAVE" > /dev/null
then
	rm  "$CRT_SAVE"
else
	rm -fr $WDIR $NEWDB
	exit 1
fi

case "$CNVDB_VER" in
 v2* )
	echo
	$NLSECHO  "Convert privileges phase 2 ..." $UE_E0_CV_PRV2
	if $CNVTUTIL -CNVTIPRV "$CNVDB" "$PRIV_SAVE" "$APRIV_SAVE" > /dev/null
	then
		rm  "$PRIV_SAVE" "$APRIV_SAVE"
	else
		rm -fr $WDIR $NEWDB > /dev/null 2>&1;
		exit 1
	fi
	;;
esac

case "$MBUILDER" in
 yes )
	echo
	$NLSECHO  "Convert Empress 4GL tables  phase 2..." $UE_E0_CV_4GL2
	if $EMPRESSPATH/rdbms/cnvt_bin/empcvv2
	then
		: 
	else
		rm -fr $WDIR $NEWDB
		exit 1
	fi
	;;
esac

case "$CNVDB_VER" in
v2.4 | v4.0 )
	echo 
	$NLSECHO  "Convert old sys_4gl tables ..." $UE_E0_CV_OLD4GL
	if $EMPRESSPATH/rdbms/cnvt_bin/empcvv4
	then
		:
	else
		rm -fr $WDIR $NEWDB
		exit 1
	fi
	;;
esac

echo

case $EMP4GL in
  yes)
	$NLSECHO  "Compile/link 4gl tables ..." $UE_E0_CV_COMLINK
	if $EMPRESSPATH/rdbms/cnvt_bin/empclapp
	then
		:
	else
		rm -fr $WDIR $NEWDB
		exit 1
	fi
	;;
esac


echo 
$NLSECHO  "Convert Empress Administrative variables ..." $UE_E0_CV_TABZERO
if $CNVTUTIL -CNVTZERO "$OLDDB" "$CNVDB" > /dev/null
then
	:
else		
	rm -fr $WDIR $NEWDB
	exit 1 
fi

echo
$NLSECHO  "Recompile tables ..." $UE_E0_CV_RECOMP
if $CNVTUTIL -CNVTCOM  "$CNVDB"
then
	:
else
	rm -fr $WDIR $NEWDB 
	exit 1 
fi

$EMPRESSPATH/bin/empadm $NEWDB maxprocs keep

rm -fr $WDIR 
$EMPRESSPATH/rdbms/cnvt_bin/msrmdb $OLDDB

echo
$NLSECHO "Conversion done" $UI_E0_CONVERDONE

exit 0
