mirror of
https://github.com/anope/anope.git
synced 2026-06-12 19:14:47 +02:00
f91057c662
git-svn-id: svn://svn.anope.org/anope/trunk@556 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@409 5417fbe8-f217-4b02-8779-1006273d7864
435 lines
11 KiB
Bash
Executable File
435 lines
11 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Configuration script for Services.
|
|
#
|
|
# Anope (c) 2003-2005 Anope team
|
|
# Contact us at dev@anope.org
|
|
#
|
|
# This program is free but copyrighted software; see the file COPYING for
|
|
# details.
|
|
#
|
|
# Based on the original code of Epona by PegSoft.
|
|
# Based on the original code of Services by Andy Church.
|
|
#
|
|
###########################################################################
|
|
|
|
echo2 () {
|
|
$ECHO2 "$*$ECHO2SUF" # these are defined later
|
|
}
|
|
|
|
ECHO2SUF=''
|
|
if [ "`echo -n a ; echo -n b`" = "ab" ] ; then
|
|
ECHO2='echo -n'
|
|
elif [ "`echo 'a\c' ; echo 'b\c'`" = "ab" ] ; then
|
|
ECHO2='echo' ; ECHO2SUF='\c'
|
|
elif [ "`printf 'a' 2>&1 ; printf 'b' 2>&1`" = "ab" ] ; then
|
|
ECHO2='printf "%s"'
|
|
else
|
|
# oh well...
|
|
ECHO2='echo'
|
|
fi
|
|
export ECHO2 ECHO2SUF
|
|
|
|
exists () { # because some shells don't have test -e
|
|
if [ -f $1 -o -d $1 -o -p $1 -o -c $1 -o -b $1 ] ; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
###########################################################################
|
|
# Init values
|
|
###########################################################################
|
|
|
|
BINDEST=$HOME/services
|
|
DATDEST=$HOME/services
|
|
RUNGROUP=
|
|
UMASK=
|
|
IRCTYPE="no default"
|
|
ENCRYPTION=
|
|
|
|
###########################################################################
|
|
# Load the cache
|
|
###########################################################################
|
|
if [ -f config.cache -a -r config.cache -a ! "$IGNORE_CACHE" ] ; then
|
|
cat <<EOT
|
|
Using defaults from config.cache. To ignore, rm config.cache
|
|
EOT
|
|
. config.cache
|
|
fi
|
|
|
|
###########################################################################
|
|
|
|
echo ""
|
|
echo "-========================= A N O P E ==========================-"
|
|
echo "For more detailed information on the features of Anope1.7 please"
|
|
echo "read the self-named documentation found on the 'docs' directory."
|
|
echo ""
|
|
|
|
echo "Anope is a set of IRC Service expanded upon Lara's Epona, based"
|
|
echo "on Andy Church's IRC Services. For all your Anope needs please"
|
|
echo "visit our portal at http://www.anope.org/"
|
|
echo ""
|
|
|
|
echo "Please read the INSTALL file for install/upgrade instructions."
|
|
echo "Reading the FAQ and README files would be a good idea too. (all"
|
|
echo "documentation is located on directory 'docs')."
|
|
echo "-==============================================================-"
|
|
echo ""
|
|
echo "Beginning Services configuration."
|
|
echo ""
|
|
|
|
###########################################################################
|
|
|
|
# Ask the user anything we need to know ahead of time.
|
|
|
|
export ok INPUT
|
|
|
|
####
|
|
|
|
ok=0
|
|
echo "Note: press Return for the default, or enter a new value."
|
|
echo "In what directory do you want the binaries to be installed?"
|
|
while [ $ok -eq 0 ] ; do
|
|
echo2 "[$BINDEST] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ ! "$INPUT" ] ; then
|
|
INPUT=$BINDEST
|
|
fi
|
|
if [ ! -d "$INPUT" ] ; then
|
|
if exists "$INPUT" ; then
|
|
echo "$INPUT exists, but is not a directory!"
|
|
else
|
|
echo "$INPUT does not exist. Create it?"
|
|
echo2 "[y] "
|
|
read YN
|
|
if [ "$YN" != "n" ] ; then
|
|
if mkdir -p $INPUT ; then
|
|
ok=1
|
|
fi
|
|
fi
|
|
fi
|
|
elif exists "$INPUT/include/services.h" ; then
|
|
echo "You cannot use the Services source directory as a target directory."
|
|
else
|
|
ok=1
|
|
fi
|
|
done
|
|
BINDEST=$INPUT
|
|
DATDEST=$INPUT
|
|
echo ""
|
|
|
|
|
|
####
|
|
|
|
ok=0
|
|
echo "Where do you want the data files to be installed?"
|
|
while [ $ok -eq 0 ] ; do
|
|
echo2 "[$DATDEST] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ ! "$INPUT" ] ; then
|
|
INPUT=$DATDEST
|
|
fi
|
|
if [ ! -d "$INPUT" ] ; then
|
|
if exists "$INPUT" ; then
|
|
echo "$INPUT exists, but is not a directory!"
|
|
else
|
|
echo "$INPUT does not exist. Create it?"
|
|
echo2 "[y] "
|
|
read YN
|
|
if [ "$YN" != "n" ] ; then
|
|
if mkdir -p $INPUT ; then
|
|
ok=1
|
|
fi
|
|
fi
|
|
fi
|
|
elif exists "$INPUT/include/services.h" ; then
|
|
echo "You cannot use the Services source directory as a target directory."
|
|
else
|
|
ok=1
|
|
fi
|
|
done
|
|
DATDEST=$INPUT
|
|
echo ""
|
|
|
|
####
|
|
|
|
|
|
OLD_RUNGROUP="$RUNGROUP"
|
|
if [ "$RUNGROUP" ] ; then
|
|
echo "Which group should all Services data files be owned by? (If Services"
|
|
echo "should not force files to be owned by a particular group, type "\"none\"
|
|
echo "(without the quotes) and press Return.)"
|
|
else
|
|
echo "Which group should all Services data files be owned by? (If Services"
|
|
echo "should not force files to be owned by a particular group, just press"
|
|
echo "Return.)"
|
|
fi
|
|
echo2 "[$RUNGROUP] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ "$INPUT" ] ; then
|
|
if [ "$INPUT" = "none" ] ; then
|
|
RUNGROUP=""
|
|
else
|
|
RUNGROUP="$INPUT"
|
|
fi
|
|
fi
|
|
echo ""
|
|
|
|
####
|
|
|
|
if [ ! "$UMASK" -o "$RUNGROUP" != "$OLD_RUNGROUP" ] ; then
|
|
if [ "$RUNGROUP" ] ; then
|
|
UMASK=007
|
|
else
|
|
UMASK=077
|
|
fi
|
|
fi
|
|
|
|
ok=0
|
|
echo "What should the default umask for data files be (in octal)?"
|
|
echo "(077 = only accessible by owner; 007 = accessible by owner and group)"
|
|
while [ $ok -eq 0 ] ; do
|
|
echo2 "[$UMASK] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ ! "$INPUT" ] ; then
|
|
INPUT=$UMASK
|
|
fi
|
|
if [ `echo "$INPUT" | grep -c '[^0-7]'` -gt 0 ] ; then
|
|
echo "$UMASK is not a valid octal number!"
|
|
else
|
|
if [ "`echo $INPUT | cut -c1`" != "0" ] ; then
|
|
INPUT=0$INPUT
|
|
fi
|
|
ok=1
|
|
fi
|
|
done
|
|
UMASK=$INPUT
|
|
echo ""
|
|
|
|
####
|
|
|
|
ok=0
|
|
echo "Select the closest to the type of server on your IRC network:"
|
|
echo " 1) DreamForge 4.6.7 [dated IRCd, upgrade to a current one]"
|
|
echo " 2) Bahamut 1.4.27 [or later]"
|
|
echo " 3) UnrealIRCd 3.1.1 [or later (not 3.2)]"
|
|
echo " 4) UltimateIRCd 2.8.2 [or later]"
|
|
echo " 5) UltimateIRCd 3.0.0 [alpha26 or later]"
|
|
echo " 6) Hybrid IRCd 7.0 [experimental]"
|
|
echo " 7) ViagraIRCd 1.3.x [or later]"
|
|
echo " 8) PTlink 6.15.0 [experimental]"
|
|
echo " 9) RageIRCd 2.0.0 [beta-6 or later]"
|
|
echo " 10) Unreal 3.2 [Unreal 3.2 beta19 or later]"
|
|
echo " 11) Solid IRCD 3.4.x [Solid IRCD 3.4.6 or later]"
|
|
echo " 12) Plexus 2.0 [or later]"
|
|
echo " 13) Ratbox 2.0.6 [or later]"
|
|
|
|
while [ $ok -eq 0 ] ; do
|
|
echo2 "[$IRCTYPE] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ ! "$INPUT" ] ; then
|
|
INPUT=$IRCTYPE
|
|
fi
|
|
case $INPUT in
|
|
no\ default)
|
|
echo "You must specify your IRC server type in order for Services to function"
|
|
echo "correctly."
|
|
;;
|
|
1)
|
|
IRCTYPE_DEF="IRC_DREAMFORGE"
|
|
ok=1;
|
|
;;
|
|
2)
|
|
IRCTYPE_DEF="IRC_BAHAMUT"
|
|
ok=1;
|
|
;;
|
|
3)
|
|
IRCTYPE_DEF="IRC_UNREAL31"
|
|
ok=1;
|
|
;;
|
|
4)
|
|
IRCTYPE_DEF="IRC_ULTIMATE2"
|
|
ok=1;
|
|
;;
|
|
5)
|
|
IRCTYPE_DEF="IRC_ULTIMATE3"
|
|
ok=1;
|
|
;;
|
|
6)
|
|
IRCTYPE_DEF="IRC_HYBRID"
|
|
ok=1;
|
|
;;
|
|
7)
|
|
IRCTYPE_DEF="IRC_VIAGRA"
|
|
ok=1;
|
|
;;
|
|
8)
|
|
IRCTYPE_DEF="IRC_PTLINK"
|
|
ok=1;
|
|
;;
|
|
9)
|
|
IRCTYPE_DEF="IRC_RAGE2"
|
|
ok=1;
|
|
;;
|
|
|
|
10)
|
|
IRCTYPE_DEF="IRC_UNREAL32"
|
|
ok=1;
|
|
;;
|
|
|
|
11)
|
|
IRCTYPE_DEF="IRC_SOLID"
|
|
ok=1;
|
|
;;
|
|
12)
|
|
IRCTYPE_DEF="IRC_PLEXUS"
|
|
ok=1;
|
|
;;
|
|
13)
|
|
IRCTYPE_DEF="IRC_RATBOX"
|
|
ok=1;
|
|
;;
|
|
|
|
*)
|
|
echo "Please enter a valid option number."
|
|
;;
|
|
esac
|
|
done
|
|
IRCTYPE=$INPUT
|
|
echo ""
|
|
|
|
####
|
|
|
|
if [ "$ENCRYPTION" = "ENCRYPT_MD5" ] ; then
|
|
DEF=yes
|
|
else
|
|
DEF=no
|
|
fi
|
|
|
|
ok=0
|
|
echo "Do you want to use the MD5 message-digest algorithm to encrypt passwords?"
|
|
echo "(Selecting "\"yes\"" protects your passwords from being stolen if someone"
|
|
echo "gains access to the Services databases, but makes it impossible to recover"
|
|
echo "forgotten passwords. There is no way to reverse this operation, so make"
|
|
echo "sure you really want to enable it.)"
|
|
while [ $ok -eq 0 ] ; do
|
|
echo2 "[$DEF] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ ! "$INPUT" ] ; then
|
|
INPUT=$DEF
|
|
fi
|
|
case $INPUT in
|
|
n*|N*)
|
|
ENCRYPTION=
|
|
ok=1
|
|
;;
|
|
y*|Y*)
|
|
ENCRYPTION=ENCRYPT_MD5
|
|
ok=1
|
|
;;
|
|
*)
|
|
echo "Please enter 'yes' or 'no'."
|
|
;;
|
|
esac
|
|
done
|
|
echo ""
|
|
|
|
####
|
|
|
|
ok=0
|
|
DEF=yes
|
|
echo "Allow anope to automatically check for mysql libaries?"
|
|
echo "unless you get errors with make, there is no need to"
|
|
echo "change this setting."
|
|
while [ $ok -eq 0 ] ; do
|
|
echo2 "[$DEF] "
|
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
|
if [ ! "$INPUT" ] ; then
|
|
INPUT=$DEF
|
|
fi
|
|
case $INPUT in
|
|
n*|N*)
|
|
MYSQL=
|
|
ok=1
|
|
;;
|
|
y*|Y*)
|
|
MYSQL="yes"
|
|
ok=1
|
|
;;
|
|
*)
|
|
echo "Please enter 'yes' or 'no'."
|
|
;;
|
|
esac
|
|
done
|
|
echo ""
|
|
|
|
####
|
|
|
|
|
|
################################################################################
|
|
# Store values
|
|
################################################################################
|
|
echo2 "Saving configuration results in config.cache... "
|
|
|
|
cat <<EOT >config.cache
|
|
BINDEST="$BINDEST"
|
|
DATDEST="$DATDEST"
|
|
RUNGROUP="$RUNGROUP"
|
|
UMASK=$UMASK
|
|
IRCTYPE=$IRCTYPE
|
|
IRCTYPE_DEF="$IRCTYPE_DEF"
|
|
ENCRYPTION="$ENCRYPTION"
|
|
MYSQL="$MYSQL"
|
|
EOT
|
|
echo "done."
|
|
|
|
|
|
################################################################################
|
|
# Build the configure string
|
|
################################################################################
|
|
|
|
WITH_BIN=""
|
|
WITH_DATA=""
|
|
WITH_ENC=""
|
|
WITH_IRCD=""
|
|
WITH_RUN=""
|
|
WITH_PERM=""
|
|
WITH_MYSQL=""
|
|
|
|
if [ "$BINDEST" != "" ] ; then
|
|
WITH_BIN=" --with-bindir=$BINDEST"
|
|
WITH_DATA=" --with-datadir=$DATDEST"
|
|
fi
|
|
|
|
if [ "$DATDEST" != "" ] ; then
|
|
WITH_DATA=" --with-datadir=$DATDEST"
|
|
fi
|
|
|
|
if [ "$ENCRYPTION" != "" ] ; then
|
|
WITH_ENC=" --with-encryption"
|
|
fi
|
|
|
|
if [ "$IRCTYPE_DEF" != "" ] ; then
|
|
WITH_IRCD=" --with-ircd=$IRCTYPE_DEF"
|
|
fi
|
|
|
|
if [ "$RUNGROUP" != "" ] ; then
|
|
WITH_RUN=" --with-rungroup=$RUNGROUP"
|
|
fi
|
|
|
|
if [ "$UMASK" != "" ] ; then
|
|
WITH_PERM=" --with-permissions=$UMASK"
|
|
fi
|
|
|
|
if [ "$MYSQL" != "yes" ] ; then
|
|
WITH_MYSQL=" --without-mysql"
|
|
fi
|
|
|
|
|
|
echo "./configure $WITH_BIN $WITH_DATA $WITH_ENC $WITH_IRCD $WITH_RUN $WITH_PERM $WITH_MYSQL"
|
|
|
|
./configure $WITH_BIN $WITH_DATA $WITH_ENC $WITH_IRCD $WITH_RUN $WITH_PERM $WITH_MYSQL
|
|
|