mirror of
https://github.com/anope/anope.git
synced 2026-06-12 19:14:47 +02:00
bba7d1aaaf
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1682 5417fbe8-f217-4b02-8779-1006273d7864
326 lines
8.3 KiB
Bash
Executable File
326 lines
8.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Configuration script for Services.
|
|
#
|
|
# Anope (c) 2003-2007 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
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
Load_Cache () {
|
|
if [ -f config.cache -a -r config.cache -a ! "$IGNORE_CACHE" ] ; then
|
|
echo "Using defaults from config.cache. To ignore, ./Config -nocache"
|
|
echo ""
|
|
. config.cache
|
|
CAN_QUICK="yes"
|
|
else
|
|
CAN_QUICK="no"
|
|
fi
|
|
}
|
|
|
|
Run_Configure () {
|
|
WITH_BIN=""
|
|
WITH_DATA=""
|
|
WITH_ENC=""
|
|
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 [ "$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_RUN $WITH_PERM $WITH_MYSQL --with-debugsym"
|
|
|
|
./configure $WITH_BIN $WITH_DATA $WITH_ENC $WITH_RUN $WITH_PERM $WITH_MYSQL
|
|
}
|
|
|
|
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
|
|
|
|
###########################################################################
|
|
# Init values
|
|
###########################################################################
|
|
|
|
BINDEST=$HOME/services
|
|
DATDEST=$HOME/services
|
|
RUNGROUP=
|
|
UMASK=
|
|
IRCTYPE="no default"
|
|
CAN_QUICK="no"
|
|
|
|
###########################################################################
|
|
# Check out the options
|
|
###########################################################################
|
|
while [ $# -ge 1 ] ; do
|
|
if [ $1 = "--help" ] ; then
|
|
echo "Config utility for Anope"
|
|
echo "------------------------"
|
|
echo "Syntax: ./Config [options]"
|
|
echo "-nocache Ignore settings saved in config.cache"
|
|
echo "-nointro Skip intro (disclaimer, etc)"
|
|
echo "-quick Skip questions, go straight to configure"
|
|
exit 0
|
|
elif [ $1 = "-nocache" ] ; then
|
|
IGNORE_CACHE="1"
|
|
elif [ $1 = "-nointro" ] ; then
|
|
NO_INTRO="1"
|
|
elif [ $1 = "-quick" -o $1 = "-q" ] ; then
|
|
Load_Cache
|
|
if [ $CAN_QUICK = "yes" ] ; then
|
|
Run_Configure
|
|
else
|
|
echo ""
|
|
echo "Can't find cache file (config.cache), aborting..."
|
|
fi
|
|
exit 0
|
|
fi
|
|
shift 1
|
|
done
|
|
|
|
###########################################################################
|
|
if [ ! "$NO_INTRO" ] ; then
|
|
clear
|
|
. ./version.log
|
|
cat .BANNER | sed "s/CURVER/$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH$VERSION_EXTRA/" | more
|
|
echo ""
|
|
else
|
|
echo ""
|
|
fi
|
|
|
|
echo "Beginning Services configuration."
|
|
echo ""
|
|
|
|
###########################################################################
|
|
# Load the cache
|
|
###########################################################################
|
|
if [ ! "$IGNORE_CACHE" ] ; then
|
|
Load_Cache
|
|
fi
|
|
|
|
# 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
|
|
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"
|
|
MYSQL="$MYSQL"
|
|
EOT
|
|
echo "done."
|
|
|
|
|
|
################################################################################
|
|
# Build the configure string
|
|
################################################################################
|
|
Run_Configure
|