8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-25 00:03:03 +01:00
firebird-mirror/builds/install/arch-specific/hpux/super/preInstall.sh.in

218 lines
4.5 KiB
Bash
Raw Normal View History

2008-01-07 13:26:23 +01:00
#!/bin/sh
#------------------------------------------------------------------------
# Prompt for response, store result in Answer
Answer=""
AskQuestion() {
Test=$1
DefaultAns=$2
echo -n "${1}"
Answer="$DefaultAns"
read Answer
}
#------------------------------------------------------------------------
# stop super server if it is running
# Also will only stop firebird, since that has the init script
stopServerIfRunning() {
checkString=`ps -ef | egrep "(fbserver|fbguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
if [ -f /sbin/init.d/firebird ]
then
/sbin/init.d/firebird stop
fi
fi
}
#------------------------------------------------------------------------
# stop server if it is running
checkIfServerRunning() {
stopServerIfRunning
checkString=`ps -ef | egrep "(fbserver|fbguard)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird SuperServer seems to be running."
echo "(the fbserver/fbguard process was detected running on your system)"
echo "Please quit all Firebird applications and then proceed"
exit -1
fi
checkString=`ps -ef | egrep "(fb_inet_server)" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird Classic server seems to be running."
echo "Please quit all interbase applications and then proceed."
exit 1
fi
# Stop lock manager if it is the only thing running.
for i in `ps -ef | egrep "fb_lock_mgr" | awk '{print $2}' `
do
kill $i
done
}
#------------------------------------------------------------------------
# Run process and check status
runAndCheckExit() {
Cmd=$*
# echo $Cmd
$Cmd
ExitCode=$?
if [ $ExitCode -ne 0 ]
then
echo "Install aborted: The command $Cmd "
echo " failed with error code $ExitCode"
exit $ExitCode
fi
}
#------------------------------------------------------------------------
# Display message if this is being run interactively.
displayMessage() {
msgText=$1
if [ ! -z "$InteractiveInstall" ]
then
echo $msgText
fi
}
#------------------------------------------------------------------------
# Archive any existing prior installed files.
# The 'cd' stuff is to avoid the "leading '/' removed message from tar.
# for the same reason the DestFile is specified without the leading "/"
archivePriorInstallSystemFiles() {
oldPWD=`pwd`
archiveFileList=""
cd /
DestFile=${FBRootDir#/} # strip off leading /
if [ -e "$DestFile" ]
then
echo ""
echo ""
echo ""
echo "--- Warning ----------------------------------------------"
echo " The installation target directory: $FBRootDir"
echo " Already contains a prior installation of Firebird."
echo " This and files found in /usr/include and @libdir@ will be"
echo " archived in the file : ${ArchiveMainFile}"
echo ""
if [ ! -z "$InteractiveInstall" ]
then
AskQuestion "Press return to continue or ^C to abort"
fi
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
fi
for i in ibase.h ib_util.h
do
DestFile=usr/include/$i
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
for i in libib_util.so libfbclient.so.1.5.0 libfbclient.so.1 libfbclient.so
do
DestFile=usr/lib/$i
if [ -e $DestFile ]
then
archiveFileList="$archiveFileList $DestFile"
fi
done
if [ ! -z "$archiveFileList" ]
then
displayMessage "Archiving..."
runAndCheckExit "tar -cvf $ArchiveMainFile $archiveFileList"
displayMessage "Done."
displayMessage "Deleting..."
for i in $archiveFileList
do
rm -rf $i
done
displayMessage "Done."
fi
cd $oldPWD
}
#== Main Pre =================================================================
FBRootDir=@prefix@
FBBin=$FBRootDir/bin
ArchiveDateTag=`date +"%Y%m%d_%H%M"`
ArchiveMainFile="${FBRootDir}_${ArchiveDateTag}.tar"
# Ok so any of the following packages are a problem
# these don't work at least in the latest rpm manager, since it
# has the rpm database locked and it fails.
# checkForRPMInstall InterBase
# checkForRPMInstall FirebirdCS
# checkForRPMInstall FirebirdSS
checkIfServerRunning
# Failing that we archive any files we find
archivePriorInstallSystemFiles