#!/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: //depot2/idl/Installers/idl-unix-scripts/trunk/src/gen_odbc_ini#3 $

# 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
# 	Drivers were upgraded to DataDirect 6.1.2 from DataDirect 5.3
# 	Drivers were upgraded to DataDirect 7.1.1 from DataDirect 6.1.2
# 	Drivers were upgraded to DataDirect 7.1.6 from DataDirect 7.1.1

      "LINUX64")
       OS_NAME=linux.x86_64
       SO_EXT="so"
       HAS_DB2="Y"
       HAS_DBASE=""
       HAS_SYBASEASE="Y"
       HAS_OR8=""
       HAS_ORWP="Y"
       HAS_MYSQL="Y"
       HAS_INFX=""
       HAS_INFXWP="Y"
       HAS_MSSQL=""
       HAS_TEXT=""
       HAS_GPLM=""
       HAS_PSQL="Y"
       HAS_SQLS="Y"
      ;;

    *)
        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 7.1.6 Drivers

if [ "$HAS_DB2" != "" ]; then
  echo "DB2 Wire Protocol=DataDirect 7.1.6 DB2 Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_DBASE" != "" ]; then
  echo "dBASE=DataDirect 7.1.6 dBASEFile (*.dbf)">>$INI_FILENAME
  echo "FoxPro3=DataDirect 7.1.6 dBASEFile (*.dbf)">>$INI_FILENAME
fi
if [ "$HAS_SYBASEASE" != "" ]; then
  echo "Sybase Wire Protocol=DataDirect 7.1.6 Sybase Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_OR8" != "" ]; then
  echo "Oracle=DataDirect 7.1.6 Oracle">>$INI_FILENAME
fi
if [ "$HAS_ORWP" != "" ]; then
  echo "Oracle Wire Protocol=DataDirect 7.1.6 Oracle Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_MYSQL" != "" ]; then
  echo "MySQL Wire Protocol=DataDirect 7.1.6 MySQL Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_INFX" != "" ]; then 
  echo "Informix=DataDirect 7.1.6 Informix">>$INI_FILENAME
fi
if [ "$HAS_INFXWP" != "" ]; then 
  echo "Informix Wire Protocol=DataDirect 7.1.6 Informix Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_MSSQL" != "" ]; then 
  echo "SQLServer Legacy Wire Protocol=DataDirect 7.1.6 SQL Server Legacy Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_TEXT" != "" ]; then 
  echo "Text=DataDirect 7.1.6 TextFile (*.*)">>$INI_FILENAME
fi
if [ "$HAS_GPLM" != "" ]; then 
  echo "Greenplum Wire Protocol=DataDirect 7.1.6 Greenplum Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_PSQL" != "" ]; then 
  echo "PostgreSQL Wire Protocol=DataDirect 7.1.6 PostgreSQL Wire Protocol">>$INI_FILENAME
fi
if [ "$HAS_SQLS" != "" ]; then 
  echo "SQLServer Wire Protocol=DataDirect 7.1.6 SQL Server Wire Protocol">>$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 7.1.6 drivers 

if [ "$HAS_DB2" != "" ]; then
  echo "
[DB2 Wire Protocol]
Driver=$INST_DIR/lib/DMdb227.$SO_EXT
Description=DataDirect 7.1.6 DB2 Wire Protocol
AccountingInfo=
AddStringToCreateTable=
AlternateID=
AlternateServers=
ApplicationName=
ApplicationUsingThreads=1
AuthenticationMethod=0
BulkBinaryThreshold=32
BulkCharacterThreshold=-1
BulkLoadBatchSize=1024
CatalogSchema=
CharsetFor65535=0
ClientHostName=
ClientUser=
#Collection applies to z/OS and iSeries only
Collection=
ConcurrentAccessResolution=0
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
CurrentFuncPath=
#Database applies to DB2 UDB only
Database=<database_name>
DefaultIsolationLevel=1
DynamicSections=200
EnableBulkLoad=0
EncryptionMethod=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
GrantAuthid=PUBLIC
GrantExecute=1
GSSClient=native
HostNameInCertificate=
IpAddress=<DB2_server_host>
KeyPassword=
KeyStore=
KeyStorePassword=
LoadBalanceTimeout=0
LoadBalancing=0
#Location applies to z/OS and iSeries only
Location=<location_name>
LogonID=
MaxPoolSize=100
MinPoolSize=0
Password=
PackageCollection=NULLID
PackageNamePrefix=DD
PackageOwner=
Pooling=0
ProgramID=
QueryTimeout=0
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/DMdbf27.$SO_EXT
Description=DataDirect 7.1.6 dBASEFile (*.dbf)
ApplicationUsingThreads=1
CacheSize=4
CreateType=dBASE5
Database=ODBCHOME/demo
DataFileExtension=DBF
ExtensionCase=UPPER
FileOpenCache=0
IntlSort=0
LockCompatibility=dBASE
Locking=RECORD
UseLongNames=0
UseLongQualifiers=0

[FoxPro3]
Driver=$INST_DIR/lib/DMdbf27.$SO_EXT
Description=DataDirect 7.1.6 dBASEFile (*.dbf)
ApplicationUsingThreads=1
CacheSize=4
CreateType=FoxPro30
Database=ODBCHOME/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/DMase27.$SO_EXT
Description=DataDirect 7.1.6 Sybase Wire Protocol
AlternateServers=
ApplicationName=
ApplicationUsingThreads=1
ArraySize=50
AuthenticationMethod=0
BulkBinaryThreshold=32
BulkCharacterThreshold=-1
BulkLoadBatchSize=1024
Charset=
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
CursorCacheSize=1
Database=<database_name>
DefaultLongDataBuffLen=1024
EnableBulkLoad=0
EnableDescribeParam=0
EnableQuotedIdentifiers=0
EncryptionMethod=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
GSSClient=native
HostNameInCertificate=
InitializationString=
Language=
LoadBalanceTimeout=0
LoadBalancing=0
LoginTimeout=15
LogonID=
MaxPoolSize=100
MinPoolSize=0
NetworkAddress=<Sybase_host,Sybase_server_port>
OptimizePrepare=1
PacketSize=0
Password=
Pooling=0
QueryTimeout=0
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/DMor827.$SO_EXT
Description=DataDirect 7.1.6 Oracle
AlternateServers=
ApplicationUsingThreads=1
ArraySize=60000
CatalogIncludesSynonyms=1
CatalogOptions=0
ClientVersion=9iR2
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
DefaultLongDataBuffLen=1024
DescribeAtPrepare=0
EnableDescribeParam=0
EnableNcharSupport=0
EnableScrollableCursors=1
EnableStaticCursorsForLongData=0
EnableTimestampWithTimeZone=0
LoadBalanceTimeout=0
LoadBalancing=0
LocalTimeZoneOffset=
LockTimeOut=-1
LogonID=
MaxPoolSize=100
MinPoolSize=0
OptimizeLongPerformance=0
Password=
Pooling=0
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/DMora27.$SO_EXT
Description=DataDirect 7.1.6 Oracle Wire Protocol
AccountingInfo=
Action=
ApplicationName=
ApplicationUsingThreads=1
ArraySize=60000
AuthenticationMethod=1
BulkBinaryThreshold=32
BulkCharacterThreshold=-1
BulkLoadBatchSize=1024
BulkLoadOptions=0
CachedCursorLimit=32
CachedDescLimit=0
CatalogIncludesSynonyms=1
CatalogOptions=0
ClientHostName=
ClientID=
ClientUser=
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
DefaultLongDataBuffLen=1024
DescribeAtPrepare=0
EditionName=
EnableBulkLoad=0
EnableDescribeParam=0
EnableNcharSupport=0
EnableScrollableCursors=1
EnableStaticCursorsForLongData=0
EnableTimestampWithTimeZone=0
EncryptionMethod=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
FetchTSWTZasTimestamp=0
GSSClient=native
HostName=<Oracle_server>
HostNameInCertificate=
InitializationString=
KeyPassword=
KeyStore=
KeyStorePassword
LoadBalanceTimeout=0
LoadBalancing=0
LocalTimeZoneOffset=
LockTimeOut=-1
LoginTimeout=15
LogonID=
MaxPoolSize=100
MinPoolSize=0
Module=0
Password=
Pooling=0
PortNumber=<Oracle_server_port>
ProcedureRetResults=0
ProgramID=
QueryTimeout=0
ReportCodePageConversionErrors=0
ReportRecycleBin=0
ServerName=<server_name_in_tnsnames.ora>
ServerType=0
ServiceName=
SID=<Oracle_System_Identifier>
TimestampEscapeMapping=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/DMmysql27.$SO_EXT
Description=DataDirect 7.1.6 MySQL Wire Protocol
AlternateServers=
ApplicationUsingThreads=1
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
Database=<database_name>
DefaultLongDataBuffLen=1024
EnableDescribeParam=0
EncryptionMethod=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
HostName=<MySQL_host>
HostNameInCertificate=
InteractiveClient=0
KeyPassword=
KeyStore=
KeyStorePassword=
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.
LoadBalanceTimeout=0
LoadBalancing=0
LoginTimeout=15
LogonID=
Password=
MaxPoolSize=100
MinPoolSize=0
Pooling=0
PortNumber=<MySQL_server_port>
QueryTimeout=0
ReportCodepageConversionErrors=0
TreatBinaryAsChar=0
TrustStore=
TrustStorePassword=
ValidateServerCertificate=1
">>$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/DMinf27.$SO_EXT
Description=DataDirect 7.1.6 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/DMifcl27.$SO_EXT
Description=DataDirect 7.1.6 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 "
[SQLServ Legacy Wire Protocol]
Driver=ODBCHOME/lib/DMmsss27.$SO_EXT
Description=DataDirect 7.1.6 SQL Server Legacy Wire Protocol
Address=<SQLServer_host, SQLServer_server_port>
AlternateServers=
AnsiNPW=Yes
ConnectionRetryCount=0
ConnectionRetryDelay=3
Database=<database_name>
FetchTSWTZasTimestamp=0
FetchTWFSasTime=0
LoadBalancing=0
LogonID=
Password=
QuotedId=No
ReportCodepageConversionErrors=0
SnapshotSerializable=0
">>$INI_FILENAME
fi


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

if [ "$HAS_GPLM" != "" ]; then
  echo "
[Greenplum Wire Protocol]
Driver=$INST_DIR/lib/DMgplm27.$SO_EXT
Description=DataDirect 7.1.6 Greenplum Wire Protocol
AlternateServers=
ApplicationUsingThreads=1
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
Database=<database_name>
DefaultLongDataBuffLen=2048
EnableDescribeParam=1
EncryptionMethod=0
ExtendedColumnMetaData=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
FetchTSWTZasTimestamp=0
FetchTWFSasTime=0
HostName=<Greenplum_host>
HostNameInCertificate=
InitializationString=
KeyPassword=
KeyStore=
KeyStorePassword=
LoadBalanceTimeout=0
LoadBalancing=0
LoginTimeout=15
LogonID=
MaxPoolSize=100
MinPoolSize=0
Password=
Pooling=0
PortNumber=<Greenplum_server_port>
QueryTimeout=0
ReportCodepageConversionErrors=0
TrustStore=
TrustStorePassword=
ValidateServerCertificate=1
XMLDescribeType=-10">>$INI_FILENAME
fi


if [ "$HAS_PSQL" != "" ]; then
  echo "
[PostgreSQL Wire Protocol]
Driver=$INST_DIR/lib/DMpsql27.$SO_EXT
Description=DataDirect 7.1.6 PostgreSQL Wire Protocol
AlternateServers=
ApplicationUsingThreads=1
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
Database=<database_name>
DefaultLongDataBuffLen=2048
EnableDescribeParam=1
EncryptionMethod=0
ExtendedColumnMetaData=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
FetchTSWTZasTimestamp=0
FetchTWFSasTime=0
HostName=<PostgreSQL_host>
HostNameInCertificate=
InitializationString=
KeyPassword=
KeyStore=
KeyStorePassword=
LoadBalanceTimeout=0
LoadBalancing=0
LoginTimeout=15
LogonID=
MaxPoolSize=100
MinPoolSize=0
Password=
Pooling=0
PortNumber=<PostgreSQL_server_port>
QueryTimeout=0
ReportCodepageConversionErrors=0
TrustStore=
TrustStorePassword=
ValidateServerCertificate=1
XMLDescribeType=-10
">>$INI_FILENAME
fi

if [ "$HAS_SQLS" != "" ]; then
  echo "
[SQLServer Wire Protocol]
Driver=$INST_DIR/lib/DMsqls27.$SO_EXT
Description=DataDirect 7.1.6 SQL Server Wire Protocol
AlternateServers=
AlwaysReportTriggerResults=0
AnsiNPW=1
ApplicationName=
ApplicationUsingThreads=1
AuthenticationMethod=1
BulkBinaryThreshold=32
BulkCharacterThreshold=-1
BulkLoadBatchSize=1024
BulkLoadOptions=2
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
Database=<database_name>
DefaultLongDataBuffLen=1024
EnableBulkLoad=0
EnableQuotedIdentifiers=0
EncryptionMethod=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
FetchTSWTZasTimestamp=0
FetchTWFSasTime=1
GSSClient=native
HostName=<SQL_Server_host>
HostNameInCertificate=
InitializationString=
Language=
LoadBalanceTimeout=0
LoadBalancing=0
LoginTimeout=15
LogonID=
MaxPoolSize=100
MinPoolSize=0
PacketSize=-1
Password=
Pooling=0
PortNumber=<SQL_Server_server_port>
QueryTimeout=0
ReportCodePageConversionErrors=0
SnapshotSerializable=0
TrustStore=
TrustStorePassword=
ValidateServerCertificate=1
WorkStationID=
XMLDescribeType=-10
">>$INI_FILENAME
fi

echo "
[ODBC]
IANAAppCodePage=4
InstallDir=$INST_DIR
Trace=0
TraceFile=odbctrace.out
TraceDll=ODBCHOME/lib/DMtrc27.so
ODBCTraceMaxFileSize=102400
ODBCTraceMaxNumFiles=10
">>$INI_FILENAME

exit 0
