#!/bin/sh
# This script generates the odbc.ini file for the platform supporting
# odbc. This is used as part of the IDL install process.
#
#
# $Id: //depot/idl/IDL_71/idldir/bin/unix/gen_odbc_ini#1 $

# Parameter 1 is $IDL_DIR
if [ "$1" != "" ]; then
IDL_DIR=$1
else
exit 1
fi

# Parameter 2 is OS_NAME
if [ "$2" = "" ]; then
exit 1
else
  case $2 in

# 	Drivers were upgraded to DataDirect 5.00 from Merant 3.7 - old news
# 	Drivers were upgraded to DataDirect 5.3 from DataDirect 5.0

      "SOLARIS2")
       OS_NAME=solaris2.sparc
       SO_EXT="so"
       HAS_DB2="Y"
       HAS_DBASE="Y"
       HAS_SYBASEASE="Y"
       HAS_OR8="Y"
       HAS_ORWP="Y"
       HAS_MYSQL="Y"
       HAS_INFX="Y"
       HAS_INFXWP="Y"
       HAS_MSSQL="Y"
       HAS_TEXT="Y"
      ;;


      "LINUX")
       OS_NAME=linux.x86
       SO_EXT="so"
       HAS_DB2="Y"
       HAS_DBASE="Y"
       HAS_SYBASEASE="Y"
       HAS_OR8="Y"
       HAS_ORWP="Y"
       HAS_MYSQL="Y"
       HAS_INFX=""
       HAS_INFXWP="Y"
       HAS_MSSQL="Y"
       HAS_TEXT="Y"
      ;;
      
      "SOLARIS264")
       OS_NAME=solaris2.sparc64
       SO_EXT="so"
       HAS_DB2="Y"
       HAS_DBASE=""
       HAS_SYBASEASE="Y"
       HAS_OR8=""
       HAS_ORWP="Y"
       HAS_MYSQL="Y"
       HAS_INFX=""
       HAS_INFXWP=""
       HAS_MSSQL="Y"
       HAS_TEXT=""
      ;;
      
      
      "LINUX64")
       OS_NAME=linux.x86_64
       SO_EXT="so"
       HAS_DB2="Y"
       HAS_DBASE=""
       HAS_SYBASEASE="Y"
       HAS_OR8="Y"
       HAS_ORWP="Y"
       HAS_MYSQL="Y"
       HAS_INFX=""
       HAS_INFXWP="Y"
       HAS_MSSQL="Y"
       HAS_TEXT=""
      ;;

    *)
        echo "$2: Not supported"
        exit 1
        ;;
  esac

fi

# This script is called blindly by the installer. Make
# sure that the bin directory is there. If not ,exit normally
#
if [ ! -x $IDL_DIR/bin/bin.$OS_NAME ]; then
  exit 0
fi

# Set the ini filename. This is platform specific
INI_FILENAME=$IDL_DIR/resource/dm/$OS_NAME/odbc.ini

echo "[ODBC Data Sources]" >$INI_FILENAME

# Write the header section of the odbc.ini file. This section is for
# intersolve 3.11 drivers.
if [ "$HAS_IN_SYBASE" != "" ]; then
  echo "Sybase=INTERSOLV 3.11 Sybase Driver">>$INI_FILENAME
fi
if [ "$HAS_IN_SYBASE11" != "" ]; then
  echo "Sybase11=INTERSOLV 3.11 Sybase 11 Driver" >>$INI_FILENAME
fi
if [ "$HAS_IN_OR7" != "" ]; then
  echo "Oracle7=INTERSOLV 3.11 Oracle 7 Driver">>$INI_FILENAME
fi
if [ "$HAS_IN_OR8" != "" ]; then
  echo "Oracle8=INTERSOLV 3.11 Oracle 8 Driver">>$INI_FILENAME
fi
if [ "$HAS_IN_INFX" != "" ]; then 
  echo "Informix=INTERSOLV 3.11 Informix Driver">>$INI_FILENAME
fi
if [ "$HAS_IN_INFX9" != "" ]; then 
  echo "Informix9=INTERSOLV 3.11 Informix 9 Driver">>$INI_FILENAME
fi

# Now start the section for the DataDirect 5.3 Drivers

if [ "$HAS_DB2" != "" ]; then
  echo "DB2 Wire Protocol=DataDirect 5.3 DB2 Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_DBASE" != "" ]; then
  echo "dBASE=DataDirect 5.3 dBASEFile (*.dbf)">>$INI_FILENAME
  echo "FoxPro3=DataDirect 5.3 dBASEFile (*.dbf)">>$INI_FILENAME
fi
if [ "$HAS_SYBASEASE" != "" ]; then
  echo "Sybase Wire Protocol=DataDirect 5.3 Sybase Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_OR8" != "" ]; then
  echo "Oracle=DataDirect 5.3 Oracle">>$INI_FILENAME
fi
if [ "$HAS_ORWP" != "" ]; then
  echo "Oracle Wire Protocol=DataDirect 5.3 Oracle Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_MYSQL" != "" ]; then
  echo "MySQL Wire Protocol=DataDirect 5.3 MySQL Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_INFX" != "" ]; then 
  echo "Informix=DataDirect 5.3 Informix">>$INI_FILENAME
fi
if [ "$HAS_INFXWP" != "" ]; then 
  echo "Informix Wire Protocol=DataDirect 5.3 Informix Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_MSSQL" != "" ]; then 
  echo "SQLServer Wire Protocol=DataDirect 5.3 SQL Server Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_TEXT" != "" ]; then 
  echo "Text=DataDirect 5.3 TextFile (*.*)">>$INI_FILENAME
fi

# Handy constant
INST_DIR=$IDL_DIR/bin/bin.$OS_NAME/dm

# OK, the Intersolve 3.11 drivers first.

if [ "$HAS_IN_SYBASE" != "" ]; then
  echo "
[Sybase]
Driver=$INST_DIR/lib/dmsyb13.$SO_EXT
Description=Sybase
OptimizePrepare=2
SelectMethod=1
">>$INI_FILENAME
fi

if [ "$HAS_IN_SYBASE11" != "" ]; then
  echo "
[Sybase11]
Driver=$INST_DIR/lib/dmsyb1113.$SO_EXT
Description=Sybase11
OptimizePrepare=2
SelectMethod=1
">>$INI_FILENAME
fi


if [ "$HAS_IN_OR7" != "" ]; then
  echo "
[Oracle7]
Driver=$INST_DIR/lib/dmor713.$SO_EXT
Description=Oracle7
EnableScrollableCursors=1
">>$INI_FILENAME
fi

if [ "$HAS_IN_OR8" != "" ]; then
  echo "
[Oracle8]
Driver=$INST_DIR/lib/dmor813.$SO_EXT
Description=Oracle8
EnableScrollableCursors=1
">>$INI_FILENAME
fi

if [ "$HAS_IN_INFX" != "" ]; then
  echo "
[Informix]
Driver=$INST_DIR/lib/dminf13.$SO_EXT
Description=Informix7
">>$INI_FILENAME
fi

if [ "$HAS_IN_INFX9" != "" ]; then
  echo "
[Informix9]
Driver=$INST_DIR/lib/dminf913.$SO_EXT
Description=Informix9
">>$INI_FILENAME
fi

# Now the DataDirect 5.3 drivers 

if [ "$HAS_DB2" != "" ]; then
  echo "
[DB2 Wire Protocol]
Driver=$INST_DIR/lib/DMdb223.$SO_EXT
Description=DataDirect 5.3 DB2 Wire Protocol
AddStringToCreateTable=
AlternateID=
AlternateServers=
ApplicationUsingThreads=1
AuthenticationMethod=0
CatalogSchema=
CharsetFor65535=0
#Collection applies to z/OS and iSeries only
Collection=
ConnectionRetryCount=0
ConnectionRetryDelay=3
#Database applies to DB2 UDB only
Database=<database_name>
DefaultIsolationLevel=1
DynamicSections=200
EncryptionMethod=0
GrantAuthid=PUBLIC
GrantExecute=1
GSSClient=native
HostNameInCertificate=
IpAddress=<DB2_server_host>
LoadBalancing=0
#Location applies to z/OS and iSeries only
Location=<location_name>
LogonID=
Password=
PackageCollection=NULLID
PackageOwner=
ReportCodePageConversionErrors=0
TcpPort=50000
TrustStore=
TrustStorePassword=
UseCurrentSchema=1
ValidateServerCertificate=1
WithHold=1
XMLDescribeType=-10
">>$INI_FILENAME
fi

if [ "$HAS_DBASE" != "" ]; then
  echo "
[dBASE]
Driver=$INST_DIR/lib/DMdbf23.$SO_EXT
Description=DataDirect 5.3 dBASEFile (*.dbf)
ApplicationUsingThreads=1
CacheSize=4
CreateType=dBASE5
Database=$INST_DIR/demo
DataFileExtension=DBF
ExtensionCase=UPPER
FileOpenCache=0
IntlSort=0
LockCompatibility=dBASE
Locking=RECORD
UseLongNames=0
UseLongQualifiers=0

[FoxPro3]
Driver=$INST_DIR/lib/DMdbf23.$SO_EXT
Description=DataDirect 5.3 dBASEFile (*.dbf)
ApplicationUsingThreads=1
CacheSize=4
CreateType=FocPro30
Database=$INST_DIR/demo
DataFileExtension=DBF
ExtensionCase=UPPER
FileOpenCache=0
IntlSort=0
LockCompatibility=Fox
Locking=RECORD
UseLongNames=0
UseLongQualifiers=0
">>$INI_FILENAME
fi

if [ "$HAS_SYBASEASE" != "" ]; then
  echo "
[Sybase Wire Protocol]
Driver=$INST_DIR/lib/DMase23.$SO_EXT
Description=DataDirect 5.3 Sybase Wire Protocol
AlternateServers=
ApplicationName=
ApplicationUsingThreads=1
ArraySize=50
AuthenticationMethod=0
Charset=
ConnectionRetryCount=0
ConnectionRetryDelay=3
CursorCacheSize=1
Database=<database_name>
DefaultLongDataBuffLen=1024
EnableDescribeParam=0
EnableQuotedIdentifiers=0
EncryptionMethod=0
GSSClient=native
HostNameInCertificate=
InitializationString=
Language=
LoadBalancing=0
LogonID=
NetworkAddress=<Sybase_host,Sybase_server_port>
OptimizePrepare=1
PacketSize=0
Password=
RaiseErrorPositionBehavior=0
ReportCodePageConversionErrors=0
SelectMethod=0
ServicePrincipalName=
TruncateTimeTypeFractions=0
TrustStore=
TrustStorePassword=
ValidateServerCertificate=1
WorkStationID=
">>$INI_FILENAME
fi


if [ "$HAS_OR8" != "" ]; then
  echo "
[Oracle]
Driver=$INST_DIR/lib/DMor823.$SO_EXT
Description=DataDirect 5.3 Oracle
AlternateServers=
ApplicationUsingThreads=1
ArraySize=60000
CatalogIncludesSynonyms=1
CatalogOptions=0
ClientVersion=9iR2
ConnectionRetryCount=0
ConnectionRetryDelay=3
DefaultLongDataBuffLen=1024
DescribeAtPrepare=0
EnableDescribeParam=0
EnableNcharSupport=0
EnableScrollableCursors=1
EnableStaticCursorsForLongData=0
EnableTimestampWithTimeZone=0
LoadBalancing=0
LocalTimeZoneOffset=
LockTimeOut=-1
LogonID=
OptimizeLongPerformance=0
Password=
ProcedureRetResults=0
ReportCodePageConversionErrors=0
ReportRecycleBin=0
ServerName=<Oracle_server>
TimestampEscapeMapping=0
UseCurrentSchema=1
">>$INI_FILENAME
fi

if [ "$HAS_ORWP" != "" ]; then
  echo "
[Oracle Wire Protocol]
Driver=$INST_DIR/lib/DMora23.$SO_EXT
Description=DataDirect 5.3 Oracle Wire Protocol
AlternateServers=
ApplicationUsingThreads=1
ArraySize=60000
AuthenticationMethod=1
CachedCursorLimit=32
CachedDescLimit=0
CatalogIncludesSynonyms=1
CatalogOptions=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
DefaultLongDataBuffLen=1024
DescribeAtPrepare=0
EnableDescribeParam=0
EnableNcharSupport=0
EnableScrollableCursors=1
EnableStaticCursorsForLongData=0
EnableTimestampWithTimeZone=0
EncryptionMethod=0
GSSClient=native
HostName=<Oracle_server>
HostNameInCertificate=
KeyPassword=
KeyStore=
KeyStorePassword
LoadBalancing=0
LocalTimeZoneOffset=
LockTimeOut=-1
LogonID=
Password=
PortNumber=<Oracle_server_port>
ProcedureRetResults=0
ReportCodePageConversionErrors=0
ReportRecycleBin=0
ServerName=<server_name in tnsnames.ora>
ServerType=0
ServiceName=
SID=<Oracle_System_Identifier>
TimestampeEscapeMapping=0
TNSNamesFile=<tnsnames.ora_filename>
TrustStore=
TrustStorePassword=
UseCurrentSchema=1
ValidateServerCertificate=1
WireProtocolMode=1
">>$INI_FILENAME
fi

if [ "$HAS_MYSQL" != "" ]; then
  echo "
[MySQL Wire Protocol]
Driver=Driver=$INST_DIR/lib/DMmysql23.$SO_EXT
Description=DataDirect 5.3 MySQL Wire Protocol
AlternateServers=
ApplicationUsingThreads=1
ConnectionRetryCount=0
ConnectionRetryDelay=3
Database=<database_name>
DefaultLongDataBuffLen=1024
EnableDescribeParam=0
HostName=<MySQL_host>
InteractiveClient=0
LicenseNotice=You must purchase commercially licensed MySQL database software or a MySQL Enterprise subscription in order to use the DataDirect Connect for ODBC for MySQL Enterprise driver with MySQL software.
LoadBalancing=0
LogonID=
Password=
PortNumber=<MySQL_server_port>
ReportCodepageConversionErrors=0
TreatBinaryAsChar=0
">>$INI_FILENAME
fi


#if [ "$HAS_PRO9" != "" ]; then
#  echo "
#[Progress9]
#Driver=$INST_DIR/lib/DMpro920.$SO_EXT
#Description=DataDirect 5.0 Progress SQL92
#DatabaseName=db
#HostName=Progress9 host
#LogonID=UID
#password=PWD
#PortNumber=Progress9 server port
#">>$INI_FILENAME
#fi

#if [ "$HAS_PRO10" != "" ]; then
#  echo "
#[Progress10]
#Driver=$INST_DIR/lib/DMpro1020.$SO_EXT
#Description=DataDirect 5.0 Progress OpenEdge
#DatabaseName=db
#HostName=Progress10 host
#LogonID=UID
#password=PWD
#PortNumber=Progress10 server port
#">>$INI_FILENAME
#fi

if [ "$HAS_INFX" != "" ]; then
  echo "
[Informix]
Driver=$INST_DIR/lib/DMinf23.$SO_EXT
Description=DataDirect 5.3 Informix
ApplicationUsingThreads=1
CancelDetectInterval=0
CursorBehavior=0
Database=<database_name>
EnableInsertCursors=0
GetDBListFromInformix=1
HostName=<Informix_host>
LogonID=
Password=
Protocol=onsoctcp
ServerName=<Informix_server>
Service=<Informix_service_name>
TrimBlankFromIndexName=1
">>$INI_FILENAME
fi

if [ "$HAS_INFXWP" != "" ]; then
  echo "
[Informix Wire Protocol]
Driver=$INST_DIR/lib/DMifcl23.$SO_EXT
Description=DataDirect 5.3 Informix Wire Protocol
AlternateServers=
ApplicationUsingThreads=1
CancelDetectInterval=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
Database=<database_name>
HostName=<Informix_host>
LoadBalancing=0
LogonID=
Password=
PortNumber=<Informix_server_port>
ServerName=<Informix_server>
TrimBlankFromIndexName=1
UseDelimitedIdentifiers=0
">>$INI_FILENAME
fi


if [ "$HAS_MSSQL" != "" ]; then
  echo "
[SQLServer Wire Protocol]
Driver=$INST_DIR/lib/DMmsss23.$SO_EXT
Description=DataDirect 5.3 SQL Server Wire Protocol
Address=<SQLServer_host, SQLServer_server_port>
AlternateServers=
AnsiNPW=Yes
ConnectionRetryCount=0
ConnectionRetryDelay=3
Database=<database_name>
LoadBalancing=0
LogonID=
Password=
QuotedId=No
SnapshotSerializable=0
">>$INI_FILENAME
fi


if [ "$HAS_TEXT" != "" ]; then
  echo "
[Text]
Driver=$INST_DIR/lib/DMtxt23.$SO_EXT
Description=DataDirect 5.3 TextFile (*.*)
AllowUpdateAndDelete=1
ApplicationUsingThreads=1
CacheSize=4
CenturyBoundary=20
Database=$INST_DIR/demo
DataFileExtension=TXT
DecimalSymbol=.
Delimiter=
FileOpenCache=0
FirstLineNames=0
IntlSort=0
ScanRows=25
TableType=Comma
UndefinedTable=GUESS
">>$INI_FILENAME
fi

echo "

[ODBC]
Trace=0
TraceFile=odbctrace.out
TraceDll=$INST_DIR/lib/odbctrac.$SO_EXT
InstallDir=$INST_DIR
">>$INI_FILENAME

exit 0
