#!/bin/sh
#
#	ODBC2DB2:  Create DB2 CLI adaptor from the ODBC example source
#	The output of this then can be compiled & linked against the DB2 
#	client libs
#
#	This script is provided 'as is' and is not supported by Apple
#
#	Tested platforms: EOF2.1, Mach, NT, Solaris
#

if [ `arch` != "i386-nextpdo-winnt3.5" ]; then
	BIN=/bin
	NEXT_ROOT=
	TMP=/tmp
else
	BIN=C:/Apple/NextDeveloper/Executables/Utilities
	TMP=$TEMP
fi

SED=$BIN/sed
CP=$BIN/cp
RM=$BIN/rm
MKDIR=$BIN/mkdir
MKDIRS=$BIN/mkdirs
MV=$BIN/mv
ECHO=$BIN/echo

#
#	Set these appropriately
#	
ODBCDIR=$NEXT_ROOT/NextDeveloper/Examples/EnterpriseObjects/ODBCAdaptor
DB2DIR=$NEXT_ROOT/NextDeveloper/Examples/EnterpriseObjects/DB2Adaptor

SOURCEFILES=`(cd $ODBCDIR; ls *.[hm])`
MAKEFILES="Makefile Makefile.preamble Makefile.postamble"
OTHERFILES="CustomInfo.plist m.template h.template"
LOGINBPROJ=LoginPanel.bproj

SEDCMDS=$TMP/_sed_
CONVCMDS=$TMP/_namechanges_
SCRATCH=$DB2DIR/_scratch_
TURDS="$SEDCMDS $CONVCMDS $SCRATCH"

if [ ! -d $DB2DIR ]; then
	$MKDIRS $DB2DIR
fi

#
#	modify the sourcefiles & rename
#
$ECHO "s/odbc/db2/g" >$CONVCMDS
$ECHO "s/ODBC/DB2/g" >>$CONVCMDS
$ECHO "s/Odbc/Db2/g" >>$CONVCMDS
$ECHO "s/HDBC /SQLHDBC /g" >>$CONVCMDS
$ECHO "s/DB2private/DB2Private/g" >>$CONVCMDS
$ECHO "s/#define HWND void \*/#import <sqlcli1.h>/g" >>$CONVCMDS

for FILE in $SOURCEFILES
do
	DB2FILE=`$ECHO $FILE | $SED -e "s/ODBC/DB2/"`
	$SED -f $CONVCMDS  $ODBCDIR/$FILE > $DB2DIR/$DB2FILE
done

#
#	modify the project & makefiles
#
$ECHO "s/ODBC/DB2/g" >$SEDCMDS
for FILE in $MAKEFILES $OTHERFILES
do
	$SED -f $SEDCMDS $ODBCDIR/$FILE > $DB2DIR/$FILE
done
$ECHO "s/odbc,//g" >>$SEDCMDS
$SED -f $SEDCMDS $ODBCDIR/PB.project > $DB2DIR/PB.project

$ECHO "s/ODBC/DB2/g" >$SEDCMDS
$SED -f $SEDCMDS $ODBCDIR/Makefile.preamble-solaris > $DB2DIR/Makefile.preamble-solaris 
$ECHO "s/Lib32/lib/g" >>$SEDCMDS
$ECHO "s/Include/include/g" >>$SEDCMDS
$ECHO "s/DB232.LIB/db2cli.lib/g" >>$SEDCMDS
$ECHO "s/odbc/C:\/SQLLIB/g" >>$SEDCMDS
$SED -f $SEDCMDS $ODBCDIR/Makefile.preamble-winnt > $DB2DIR/Makefile.preamble-winnt

#
#	the login panel bundle
#
LOGINFILES=`(cd $ODBCDIR/$LOGINBPROJ; ls)`
$MKDIR $DB2DIR/$LOGINBPROJ
for FILE in $LOGINFILES
do
	DB2FILE=`$ECHO $FILE | $SED -e "s/ODBC/DB2/"`
	$SED -f $CONVCMDS  $ODBCDIR/$LOGINBPROJ/$FILE > $DB2DIR/$LOGINBPROJ/$DB2FILE
done

#
#	some nits, cases where brute force overdid it....
#
FIXFILES="DB2SQLExpression.m DB2Context.m DB2Adaptor.h DB2Adaptor.m"
$ECHO "s/DB2_API/ODBC_API/g" >$SEDCMDS
$ECHO "s/DB2_VER/ODBC_VER/g" >>$SEDCMDS
$ECHO "s/DB2_SQL/ODBC_SQL/g" >>$SEDCMDS
$ECHO "s/defaultDB2Type/defaultODBCType/g" >>$SEDCMDS 

for FILE in $FIXFILES
do
	$MV $DB2DIR/$FILE $SCRATCH
	$SED -f $SEDCMDS $SCRATCH > $DB2DIR/$FILE
	$RM -f $SCRATCH
done
$MV $DB2DIR/PB.project $SCRATCH
$SED 's/DB2_LICENSE.rtf/ODBC_LICENSE.rtf/g' $SCRATCH > $DB2DIR/PB.project

#
#	copy the license file intact
#
$CP $ODBCDIR/ODBC_LICENSE.rtf $DB2DIR/ODBC_LICENSE.rtf

#
#	clean up scratch files
#
$RM -f $TURDS


exit


