diff options
author | rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b <rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2004-07-19 14:08:30 +0000 |
---|---|---|
committer | rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b <rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2004-07-19 14:08:30 +0000 |
commit | a1479a87757fb5e9b48f3c8bb5dd9cc247406f1a (patch) | |
tree | 06d23a51082a398c512ed8f1e39bdac60d4dd658 /Config | |
parent | 7fffea77edbe72cd66f7a55f41a3966204f9cf86 (diff) |
BUILD : 1.7.4 (264) BUGS : N/A NOTES : Switched to autoconf - try to commit part 1
git-svn-id: svn://svn.anope.org/anope/trunk@264 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@169 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'Config')
-rwxr-xr-x | Config | 374 |
1 files changed, 374 insertions, 0 deletions
@@ -0,0 +1,374 @@ +#!/bin/sh +# +# Configuration script for Services. +# +# Anope (c) 2003 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]" +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 [beta-3 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_UNREAL" + ok=1; + ;; + 4) + IRCTYPE_DEF="IRC_ULTIMATE" + 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; + ;; + + *) + 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 "" + +#### + + +################################################################################ +# 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" +EOT +echo "done." + + +################################################################################ +# Build the configure string +################################################################################ + +WITH_BIN="" +WITH_DATA="" +WITH_ENC="" +WITH_IRCD="" +WITH_RUN="" +WITH_PERM="" + +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 + +./configure $WITH_BIN $WITH_DATA $WITH_ENC $WITH_IRCD $WITH_RUN $WITH_PERM + |