8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 19:23:03 +01:00
firebird-mirror/builds/install/arch-specific/hpux/misc/changegdslibrarycompatibleLink.sh.in
2008-01-07 12:26:23 +00:00

187 lines
4.9 KiB
Bash

#!/bin/sh
#
# This library is part of the Firebird project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# You may obtain a copy of the Licence at
# http://www.gnu.org/licences/lgpl.html
#
# As a special exception this file can also be included in modules
# with other source code as long as that source code has been
# released under an Open Source Initiative certificed licence.
# More information about OSI certification can be found at:
# http://www.opensource.org
#
# This module is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public Licence for more details.
#
# This module was created by members of the firebird development
# team. All individual contributions remain the Copyright (C) of
# those individuals and all rights are reserved. Contributors to
# this file are either listed below or can be obtained from a CVS
# history command.
#
# Created by: Mark O'Donohue <mark.odonohue@ludwig.edu.au>
#
# Contributor(s):
#
#
# $Id: changegdslibrarycompatibleLink.sh.in,v 1.2 2008-01-07 12:25:57 paulbeach Exp $
#
# This script allows the user to change the link on classic for the
# client library from
#
# a) libfbembed.sl original classic direct connection
# b) libfbclient.sl multithreaded client connection
#
#------------------------------------------------------------------------
# Prompt for response, store result in Answer
Answer=""
AskQuestion() {
Test=$1
DefaultAns=$2
echo -n "${1}"
Answer="$DefaultAns"
read Answer
if [ -z $Answer ]
then
Answer=$DefaultAns
fi
}
#------------------------------------------------------------------------
# remove Link
removeLink() {
fileName=$1
if [ -L $fileName ]
then
rm -f $fileName
fi
}
#------------------------------------------------------------------------
# quitIfRealFile
# Remove the backward comparibility links for libgds.sl
quitIfRealFile() {
fileToCheck=$1
# Don't worry about symbolic links
if [ -L $fileToCheck ]
then
return
fi
if [ -f $fileToCheck ]
then
echo "The file $fileToCheck is a real file not just a link to an "
echo "existing file. It therefore may be from a"
echo "previous firebird or InterBase(r) installation"
echo "You will need to manually check the status of this file"
echo "and remove it before running this script again"
exit
fi
}
#------------------------------------------------------------------------
# removeLinks
# Remove the backward comparibility links for libgds.sl
removeLinks() {
removeLink @libdir@/libgds.sl
removeLink @libdir@/libgds.sl.0
}
#------------------------------------------------------------------------
# createLinksForBackCompatibility
# Create links for back compatibility to InterBase and Firebird1.0
# linked systems.
createLinksForBackCompatibility() {
# These two links are required for compatibility with existing ib programs
# If the program had been linked with libgds.sl then this link is required
# to ensure it loads the fb equivalent. Eventually these should be
# optional and in a seperate rpm install. MOD 7-Nov-2002.
newLibrary=$FBRootDir/lib/$1
removeLinks
ln -s $newLibrary @libdir@/libgds.sl
ln -s $newLibrary @libdir@/libgds.sl.0
}
#------------------------------------------------------------------------
# printStatus
printStatus() {
printStatus=`ls -l @libdir@/libgds.sl | sed 's@^.* /usr@/usr@'`
echo $printStatus
}
#= Main ====================================================================
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
cat <<EOF
For classic server there are two optional backward compatible client libraries.
These are libfbclient.sl and libfbembed.sl.
libfbclient.sl) enables your client to be multithreaded but must connect to a
database via a server.
libfbembed.sl) allows the client to directly open the database file, but does
not support multithreaded access
Your current setting is:
EOF
printStatus
echo ""
quitIfRealFile @libdir@/libgds.sl
quitIfRealFile @libdir@/libgds.sl.0
AskQuestion "Which option would you like to choose (client|embed|remove) [client] " "client"
case $Answer in
embed)
createLinksForBackCompatibility libfbembed.sl
;;
client)
createLinksForBackCompatibility libfbclient.sl
;;
remove)
removeLinks
;;
*)
echo "Unknown option $Answer chosen"
;;
esac