mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 10:03:03 +01:00
135 lines
3.5 KiB
Plaintext
135 lines
3.5 KiB
Plaintext
|
#!/bin/sh
|
||
|
#
|
||
|
# The contents of this file are subject to the Initial
|
||
|
# Developer's Public License Version 1.0 (the "License");
|
||
|
# you may not use this file except in compliance with the
|
||
|
# License. You may obtain a copy of the License at
|
||
|
# http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
|
||
|
#
|
||
|
# Software distributed under the License is distributed AS IS,
|
||
|
# WITHOUT WARRANTY OF ANY KIND, either express or implied.
|
||
|
# See the License for the specific language governing rights
|
||
|
# and limitations under the License.
|
||
|
#
|
||
|
# The Original Code was created by Paul Beach
|
||
|
# based on the original Posix script created by Alex Peshkov
|
||
|
# for the Firebird Open Source RDBMS project.
|
||
|
#
|
||
|
# Copyright (c) 2017 Paul Beach <pbeach@ibphoenix.com>
|
||
|
# Alex Peshkov <peshkov@mail.ru>
|
||
|
# and all contributors signed below.
|
||
|
#
|
||
|
# All Rights Reserved.
|
||
|
# Contributor(s): ______________________________________.
|
||
|
#
|
||
|
|
||
|
FB_FW=/Library/Frameworks/Firebird.framework
|
||
|
DAEMONLOC=/Library/LaunchDaemons
|
||
|
|
||
|
#------------------------------------------------------------------------
|
||
|
# add a line in the (usually) /etc/services or /etc/inetd.conf file
|
||
|
# Here there are three cases, not found => add
|
||
|
# found & different => replace
|
||
|
# found & same => do nothing
|
||
|
#
|
||
|
|
||
|
replaceLineInFile() {
|
||
|
FileName="$1"
|
||
|
echo $Filename
|
||
|
newLine="$2"
|
||
|
oldLine=`grep "$3" $FileName`
|
||
|
|
||
|
if [ -z "$oldLine" ]
|
||
|
then
|
||
|
echo "$newLine" >> "$FileName"
|
||
|
elif [ "$oldLine" != "$newLine" ]
|
||
|
then
|
||
|
MakeTemp
|
||
|
grep -v "$oldLine" "$FileName" > "$TmpFile"
|
||
|
echo "$newLine" >> $TmpFile
|
||
|
cp $TmpFile $FileName
|
||
|
rm -f $TmpFile
|
||
|
echo "Updated $1"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
MakeTemp() {
|
||
|
TmpFile=`mktemp -q /tmp/firebird_tmp.XXXXXX`
|
||
|
if [ $? -ne 0 ]
|
||
|
then
|
||
|
for n in `seq 1000`
|
||
|
do
|
||
|
TmpFile=/tmp/firebird_tmp.$n
|
||
|
if [ ! -e $TmpFile ]
|
||
|
then
|
||
|
touch $TmpFile
|
||
|
return
|
||
|
fi
|
||
|
done
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
cat <<EOF
|
||
|
Firebird 4.x can operate in different server modes. By default it is installed in SuperServer mode with full SMP support. However it can also run in Classic mode.
|
||
|
SuperServer offers better performance whilst Classic offers better availability.
|
||
|
This script will allow you to switch between SuperServer and the Classic variant.
|
||
|
|
||
|
Please make sure that you quit and exit all Firebird Applications before continuing
|
||
|
EOF
|
||
|
|
||
|
read -p "Option: (Classic|SuperServer) " multianswer
|
||
|
|
||
|
case $multianswer in
|
||
|
Classic)
|
||
|
|
||
|
# Check mode...
|
||
|
if [ -f "$FB_FW/Resources/Classic" ]; then
|
||
|
echo "Note: you are already in Classic mode"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
launchctl unload $DAEMONLOC/org.firebird.gds.plist
|
||
|
fbconf=$FB_FW/Resources/firebird.conf
|
||
|
replaceLineInFile $fbconf "ServerMode=Classic" "ServerMode"
|
||
|
|
||
|
if [ -f "$FB_FW/Resources/SuperServer" ]; then
|
||
|
rm $FB_FW/Resources/SuperServer
|
||
|
fi
|
||
|
|
||
|
touch $FB_FW/Resources/Classic
|
||
|
chflags hidden $FB_FW/Resources/Classic
|
||
|
|
||
|
cp $FB_FW/Resources/cs.org.firebird.gds.plist $DAEMONLOC/org.firebird.gds.plist
|
||
|
launchctl load $DAEMONLOC/org.firebird.gds.plist
|
||
|
;;
|
||
|
|
||
|
SuperServer)
|
||
|
|
||
|
# Check mode...
|
||
|
if [ -f "$FB_FW/Resources/SuperServer" ]; then
|
||
|
echo "Note: you are already in SuperServer mode"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
launchctl unload $DAEMONLOC/org.firebird.gds.plist
|
||
|
fbconf=$FB_FW/Resources/firebird.conf
|
||
|
replaceLineInFile $fbconf "ServerMode=Super" "ServerMode"
|
||
|
|
||
|
if [ -f "$FB_FW/Resources/Classic" ]; then
|
||
|
rm $FB_FW/Resources/Classic
|
||
|
fi
|
||
|
|
||
|
touch $FB_FW/Resources/SuperServer
|
||
|
chflags hidden $FB_FW/Resources/SuperServer
|
||
|
cp $FB_FW/Resources/org.firebird.gds.plist $DAEMONLOC/org.firebird.gds.plist
|
||
|
launchctl load $DAEMONLOC/org.firebird.gds.plist
|
||
|
;;
|
||
|
|
||
|
*)
|
||
|
|
||
|
echo "unknown option chosen"
|
||
|
exit 1
|
||
|
;;
|
||
|
|
||
|
esac
|