diff options
Diffstat (limited to 'build/oracle')
-rwxr-xr-x | build/oracle/configure | 99 | ||||
-rwxr-xr-x | build/oracle/oracle | 75 |
2 files changed, 174 insertions, 0 deletions
diff --git a/build/oracle/configure b/build/oracle/configure new file mode 100755 index 0000000..9746133 --- /dev/null +++ b/build/oracle/configure @@ -0,0 +1,99 @@ +#! /usr/bin/env bash + +# file : build/oracle/configure +# author : Constantin Michael <constantin@codesynthesis.com> +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : ODB NCUEL; see accompanying LICENSE file + +# +# dcf_root - dynamic configuration root +# + +$echo +$echo "Please enter the Oracle client program path." +$echo + +driver=`read_path --command sqlplus` + +$echo +$echo "Please enter the Oracle database user." +$echo + +user=`read_value "odb_test"` + +$echo +$echo "Please enter the Oracle database password." +$echo + +# If the user is odb_test then default to odb_test as a password since +# it is unlikely there is the odb_test user with external authentication. +# +if [ "$user" = "odb_test" ]; then + def_passwd=odb_test +else + def_passwd= +fi + +passwd=`read_value "$def_passwd"` + +$echo +$echo "Please enter the Oracle listener host (localhost if left empty)." +$echo + +host=`read_value ""` + +$echo +$echo "Please enter the Oracle listener port (default port if left empty)." +$echo + +port=`read_value ""` + +$echo +$echo "Please enter the Oracle service to use (default service if left" +$echo "empty). Note that the database associated with user $user on this" +$echo "service WILL BE MODIFIED." +$echo + +service=`read_value ""` + +opt=$dcf_root/db.options +drv=$dcf_root/db-driver + +if [ -n "$user" ]; then +echo "--user '$user'" >$opt +fi + +if [ -n "$passwd" ]; then +echo "--password '$passwd'" >>$opt +fi + +if [ -n "$service" ]; then +echo "--service '$service'" >>$opt +fi + +if [ -n "$host" ]; then +echo "--host '$host'" >>$opt +fi + +if [ -n "$port" ]; then +echo "--port '$port'" >>$opt +fi + +echo "#!/bin/sh" >$drv + +dir=`dirname $driver` +if [ "$dir" != "." ]; then + echo >>$drv + echo 'LD_LIBRARY_PATH="'$dir':$LD_LIBRARY_PATH"' >>$drv + echo "export LD_LIBRARY_PATH" >>$drv + echo >>$drv + echo 'if [ -z "$SQLPATH" ]; then' >>$drv + echo ' SQLPATH="'$dir'"' >>$drv + echo " export SQLPATH" >>$drv + echo "fi" >>$drv + echo >>$drv +fi + +echo "opt=\`cat $opt\`" >>$drv +echo "eval $scf_root/oracle/oracle --driver $driver \$opt \$*" >>$drv +chmod 755 $drv diff --git a/build/oracle/oracle b/build/oracle/oracle new file mode 100755 index 0000000..9228025 --- /dev/null +++ b/build/oracle/oracle @@ -0,0 +1,75 @@ +#! /usr/bin/env bash + +# file : build/oracle/oracle +# author : Constantin Michael <constantin@codesynthesis.com> +# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +# license : ODB NCUEL; see accompanying LICENSE file + +# +# Oracle driver wrapper. +# + +while [ $# -gt 0 ]; do + case $1 in + --driver) + driver=$2 + shift 2 + ;; + --user) + user="$2" + shift 2 + ;; + --password) + passwd="$2" + shift 2 + ;; + --service) + service="$2" + shift 2 + ;; + --host) + host="$2" + shift 2 + ;; + --port) + port="$2" + shift 2 + ;; + *) + break + ;; + esac +done + +if [ -z "$driver" ]; then + driver=sqlplus +fi + +conn=$user + +if [ -n "$passwd" ]; then + conn="$conn/$passwd" +fi + +if [ -n "$host" ]; then + conn="$conn@//$host" + + if [ -n "$port" ]; then + conn="$conn:$port" + fi + + if [ -n "$service" ]; then + conn="$conn/$service" + fi +elif [ -n "$service" ]; then + conn="$conn@$service" +fi + +opt="-L $opt" + +if [ -n "$1" ]; then + opt="-S $opt" + exec $driver $opt $conn @$1 +else + exec $driver $opt $conn +fi |