#!/bin/sh
#
# Install AVIRA for UNIX
#
# Copyright (c) 2004, 2005 AVIRA GmbH
# VERSION 1.1

PATH="/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin"

check_os()
{
	OS="`uname | tr '[:upper:]' '[:lower:]'`"
	PRETTY_OS="`uname`"
	OSREL="`uname -r`"
	KERNELVERSION="${OS}-${OSREL}"

	case "${OS}" in
	   linux)
		PRETTY_OS="GNU/Linux"
		if [ "${OSREL#2.6.}" != "${OSREL}" ]; then
			OS="linux26"
		fi

		# Determine the Linux distribution type
		DISTRO="unknown"
		PRETTY_DISTRO="an unknown"

		[ -e /etc/redhat-release ] && \
			DISTRO="redhat" PRETTY_DISTRO="a Red Hat"

		[ -e /etc/mandrake-release -o \
		  -e /etc/mandrakelinux-release ] && \
			DISTRO="mandrake" PRETTY_DISTRO="a Mandrake"

		[ -e /etc/fedora-release ] && \
			DISTRO="fedora" PRETTY_DISTRO="a Fedora Core"

		[ -e /etc/SuSE-release ] && \
			DISTRO="suse" PRETTY_DISTRO="a SuSE"

		[ -e /etc/debian_version ] && \
			EXELIST="$EXELIST update-rc.d" \
			DISTRO="debian" PRETTY_DISTRO="a Debian"

		[ -e /etc/slackware-version ] && \
			DISTRO="slackware" PRETTY_DISTRO="a Slackware"

		[ -e /etc/gentoo-release ] && \
			EXELIST="$EXELIST rc-update" \
			DISTRO="gentoo" PRETTY_DISTRO="a Gentoo"

		[ -e /etc/turbolinux-release ] && \
			DISTRO="turbolinux" PRETTY_DISTRO="a Turbolinux"
		;;

	   *)
		DISTRO="$OS"
		;;
	esac

	echo ""

	if [ "$DISTRO" != "$OS" ]
	then
		echo "This seems to be a "$PRETTY_OS" operating system" \
		     "with "$PRETTY_DISTRO" layout."
	else
		echo "This seems to be a "$PRETTY_OS" operating system."
	fi	
}

set_commands()
{
	case "${OS}" in
		sunos)
			ECHO=./sh/echo_sunos
			PSAX="ps -Af"
			;;
		*)
			ECHO="echo"
			PSAX="ps ax"
			;;
	esac
}

getDEV()
{
	case "${OS}" in
		freebsd)
			DEV=`kldstat | grep dazuko`
			;;
		*)
			DEV=`grep dazuko /proc/devices`
			;;
	esac
}

noop()
{
	if [ 0 -eq 1 ]
	then
		echo "strange"
	fi
}

check_copyfiles()
{
	for CPITEM in $CPLIST
	do
		if [ ! -f "$CPITEM" ]
		then
			$ECHO ""
			$ECHO "Not all the installation files were found. Make sure"
			$ECHO "you have the complete installation package. This script"
			$ECHO "requires the following files:"
			for CPITEM in $CPLIST
			do
				$ECHO "    $CPITEM"
			done
			$ECHO " "
			exit 1
		fi
	done
}

check_executables()
{
	for EXE in $EXELIST
	do
		if [ ! -x "`which $EXE`" ]
		then
			$ECHO ""
			$ECHO "This script requires '$EXE' to run."
			$ECHO " "
			exit 1
		fi
	done
}

convert_version()
{
	set -- `$ECHO "${VERSION}" | sed 's/[^0-9]/\ /g'`

	MAJ=$1
	test $MAJ -eq 0
	if [ $? -gt 1 ]
	then
		MAJ=0
	fi

	MIN=$2
	test $MIN -eq 0
	if [ $? -gt 1 ]
	then
		MIN=0
	fi

	REV=$3
	test $REV -eq 0
	if [ $? -gt 1 ]
	then
		REV=0
	fi

	BLD=$4
	test $BLD -eq 0
	if [ $? -gt 1 ]
	then
		BLD=0
	fi

	VERSION=`expr $MAJ \* 1000000`
	TEMP1=`expr $MIN \* 10000`
	VERSION=`expr $VERSION + $TEMP1`
	TEMP1=`expr $REV \* 100`
	VERSION=`expr $VERSION + $TEMP1`
	VERSION=`expr $VERSION + $BLD`
}

compare_versions()
{
	# 0 = replace older version
	# 1 = do not replace same version
	# 2 = do not replace newer version
	# 3 = TOO new version (do not install)

	if [ $OLDVERSION -lt $NEWVERSION ]
	then
		return 0
	elif [ $OLDVERSION -eq $NEWVERSION ]
	then
		return 1
	elif [ $OLDVERSION -gt $NEWVERSION ]
	then
		if [ `expr $OLDVERSION / 10000` -gt `expr $NEWVERSION / 10000` ]
		then
			return 3
		fi

		return 2
	fi

	return 0
}

identify_rcd()
{

#
# RCDIR 	= directory where the symlinked runlevel init scripts reside
# INITDIR	= directory where the service init scripts reside
# INITSCRIPT	= the source file for the init script (either in /usr/lib/AVIRA,
#							or a link in $INITDIR)

	case $OS in
		freebsd)
			RCDIR="/usr/local/etc"
			INITDIR=""
			if [ ! -d "$RCDIR/rc.d" ]
			then
				RCDIR=""
			fi
			;;
			
		openbsd)
			RCDIR="/etc"
			INITDIR=""
			;;

		sunos)
			RCDIR="/etc"
			INITDIR="/etc/init.d"
			;;

		*)
			case $DISTRO in
				gentoo)
					RCDIR=""
					INITDIR="/etc/init.d"
					;;

				slackware)
					RCDIR=""
					INITDIR="/etc/rc.d"
					;;

				redhat|mandrake|fedora)
					RCDIR="/etc/rc.d"
					INITDIR="/etc/rc.d/init.d"

					# Check, just in case...
					if [ ! -d "$RCDIR/rc0.d" ]
					then
						RCDIR="/etc"
						if [ ! -d "$RCDIR/rc0.d" ]
						then
							RCDIR=""
						fi
					fi
					;;

				suse)
					RCDIR="/etc/init.d"
					INITDIR="/etc/init.d"

					# Check, just in case
					if [ ! -d "$RCDIR/rc0.d" ]
					then
						RCDIR="/etc/rc.d"
						if [ ! -d "$RCDIR/rc0.d" ]
						then
							RCDIR=""
						fi
					fi
					;;

				debian)
					RCDIR="/etc"
					INITDIR="/etc/init.d"

					# Check, just in case
					if [ ! -d "$RCDIR/rc0.d" ]
					then
						RCDIR="/etc/rc.d"
						if [ ! -d "$RCDIR/rc0.d" ]
						then
							RCDIR=""
						fi
					fi
					;;

				*)
					# Generic case for any OS, any distribution
					RCDIR="/etc"
					if [ ! -d "$RCDIR/rc0.d" ]
					then
						RCDIR="/etc/rc.d"
						if [ ! -d "$RCDIR/rc0.d" ]
						then
							RCDIR=""
						fi
					fi

					INITDIR="$RCDIR"
					;;
			esac

			# Check INITDIR
			if [ ! -d "$INITDIR" ]
			then
				INITDIR=""
			fi
			;;
	esac

	[ ! -z "$INITDIR" ] && $ECHO "Your system seems to keep the init scripts in $INITDIR"
	[ ! -z "$RCDIR" ] && $ECHO "Your system seems to keep the runlevel scripts in $RCDIR"

	# Temporary workaround for "identifying startup script location" checks
	RCDIR="${RCDIR:-$INITDIR}"
}

make_startup_links()
{
	case $OS in
		freebsd)
			$SLEEP 1
			$ECHO -n "linking $RCDIR/rc.d/$LINKNAME.sh to $AVDIR/$LINKNAME ... "
			rm -f "$RCDIR/rc.d/$LINKNAME.sh"
			ln -s "$AVDIR/$LINKNAME" "$RCDIR/rc.d/$LINKNAME.sh"
			$SLEEP 1
			$ECHO "done"
			;;
		openbsd)
		  	INITSCRIPT="$AVDIR/$LINKNAME"

			# OpenBSD uses an /etc/rc.local command script for system startup
			RCLOCAL="$RCDIR/rc.local"
			grep -F "$INITSCRIPT start" "$RCLOCAL" >/dev/null 2>&1
			if [ $? -ne 0 ]
			then
				$ECHO -n "launching $INITSCRIPT from $RCLOCAL ... "
				cat >>"$RCLOCAL" <<EOF

# Start $FULLPRODUCTNAME ($LINKNAME)
if [ -x $INITSCRIPT ]; then
  $INITSCRIPT start
fi

EOF
				$SLEEP 1
				$ECHO "done"
			else
				$ECHO "It seems your $RCLOCAL already starts $LINKNAME"
				$SLEEP 1
			fi
			
		  	# OpenBSD executes an /etc/rc.shutdown command script at shutdown
			RCSHUTDOWN="$RCDIR/rc.shutdown"
			grep -F "$INITSCRIPT stop" "$RCSHUTDOWN" >/dev/null 2>&1
			if [ $? -ne 0 ]
			then
				$ECHO -n "stopping $INITSCRIPT from $RCSHUTDOWN ... "
				cat >>"$RCSHUTDOWN" <<EOF

# Stop $FULLPRODUCTNAME ($LINKNAME)
if [ -x $INITSCRIPT ]; then
  $INITSCRIPT stop
fi

EOF
				$SLEEP 1
				$ECHO "done"
			else
				$ECHO "It seems your $RCSHUTDOWN already stops $LINKNAME"
				$SLEEP 1
			fi
			;;
		*)
			if [ ! -z "$INITDIR" ]
			then
				INITSCRIPT="$INITDIR/$LINKNAME"
				$ECHO -n "linking startup $LINKNAME script into $INITDIR/ ... "
				$SLEEP 1
				rm -f "$INITSCRIPT"
				ln -sf "$AVDIR/$LINKNAME" "$INITSCRIPT"
				$ECHO "done"
			else
				INITSCRIPT="$AVDIR/$LINKNAME"
			fi

			case $DISTRO in
			  gentoo)
			  	# Gentoo Linux does not use symlinked init scripts
				$SLEEP 1
				$ECHO -n "Updating init scripts table ... "
				rc-update add $LINKNAME default >/dev/null
				$ECHO "done"
				;;

			  debian)
			  	# Debian Linux has a special tool

				$SLEEP 1
				$ECHO -n "Updating init scripts table ... "
				update-rc.d $LINKNAME defaults >/dev/null
				$ECHO "done"
				;;

			  slackware)
			  	# Slackware Linux uses a BSD-style rc.local startup script
				RCLOCAL="$INITDIR/rc.local"
				$SLEEP 1
				grep -F "$INITSCRIPT start" "$RCLOCAL" >/dev/null 2>&1
				if [ $? -ne 0 ]
				then
					$ECHO -n "launching $INITSCRIPT from $RCLOCAL ... "
					cat >>"$RCLOCAL" <<EOF

# Start $FULLPRODUCTNAME ($LINKNAME)
if [ -x $INITSCRIPT ]; then
  $INITSCRIPT start
fi

EOF
					$SLEEP 1
					$ECHO "done"
				else
					$ECHO "It seems your $RCLOCAL already starts $LINKNAME"
					$SLEEP 1
				fi
				;;

			  *)
				$SLEEP 1
				$ECHO "linking $RCDIR/rc(LEVEL).d/(S/K)20$LINKNAME to $INITSCRIPT ..."
				$SLEEP 1
				$ECHO " "
				# Startup runlevels
				$ECHO -n "Startup runlevels ... "
				for LEVEL in 2 3 4 5
				do
					if [ -d "$RCDIR/rc$LEVEL.d" ]
					then
						rm -f "$RCDIR/rc$LEVEL.d/S20$LINKNAME"
						ln -s "$INITSCRIPT" "$RCDIR/rc$LEVEL.d/S20$LINKNAME"
						$SLEEP 1
						$ECHO -n "$LEVEL "
					fi
				done
				$ECHO "done"
				# Shutdown runlevels
				$ECHO -n "Shutdown runlevels ... "
				for LEVEL in 0 1 6
				do
					if [ -d "$RCDIR/rc$LEVEL.d" ]
					then
						rm -f "$RCDIR/rc$LEVEL.d/K20$LINKNAME"
						ln -s "$INITSCRIPT" "$RCDIR/rc$LEVEL.d/K20$LINKNAME"
						$SLEEP 1
						$ECHO -n "$LEVEL "
					fi
				done
				$ECHO "done"
				;;
			esac
			;;
	esac
}

remove_startup_links()
{
	case $OS in
		freebsd)
			rm -f "$RCDIR/rc.d/$LINKNAME.sh"
			;;

		openbsd)
			# We don't need to do anything here, as for OpenBSD there
			# shouldn't be AVIRA scripts outside $AVDIR and the
			# entries in /etc/rc.* are harmless without an $AVDIR
			;;
			
		*)
			if [ ! -z "$INITDIR" ]
			then
				rm -f "$INITDIR/$LINKNAME"
			fi

			case $DISTRO in
			  gentoo)
			  	# Gentoo Linux does not use symlinked init scripts
				$SLEEP 1
				$ECHO -n "Updating init scripts table ... "
				rc-update del $LINKNAME >/dev/null
				$ECHO "done"
				rm -f "$INITDIR/$LINKNAME"
				;;

			  debian)
			  	# Debian Linux has a special tool

				$SLEEP 1
				$ECHO -n "Updating init scripts table ... "
				update-rc.d -f $LINKNAME remove >/dev/null
				$ECHO "done"
				;;


			  slackware)
			  	# Slackware Linux uses a BSD-style rc.local startup script
				# We should remove the inserted startup sequence from
				# /etc/rc.d/rc.local, but that doesn't execute anyway because
				# the init script is already removed
				;;
			  	
			  *)
				for LEVEL in 0 1 2 3 4 5 6
				do
					rm -f "$RCDIR/rc$LEVEL.d/S20$LINKNAME"
					rm -f "$RCDIR/rc$LEVEL.d/K20$LINKNAME"
				done
					;;
			esac
			;;
	esac
}

install_gui()
{
	COPYNAME="framework"
	COPYSRC="."
	COPYDST="$AVDIR"
	COPYMODE="755"
	COPYDSTFULL="$COPYDST/$COPYNAME"
	$SLEEP 1
	$ECHO -n "copying $COPYSRC/$COPYNAME to $COPYDST ... "
	$SLEEP 2
	cp -fR "$COPYSRC/$COPYNAME" "$COPYDST"
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod $COPYMODE $COPYDSTFULL
	$ECHO "done"

	$SLEEP 1
	$ECHO "installation of GUI complete"
}

install_webgate()
{
	if [ "$VARIANT" = "AVDE" ]
	then
		COPYNAME="aiwebgate_de.pdf"
		COPYSRC="."
		COPYDST="$AVDIR"
		COPYMODE="644"
		COPYDSTFULL="$AVDIR/$COPYNAME"
		$SLEEP 1
		$ECHO -n "copying $COPYSRC/$COPYNAME to $COPYDST ... "
		$SLEEP 2
		cp -f "$COPYSRC/$COPYNAME" "$COPYDST"
		if [ $? -ne 0 ]
		then
			$ECHO "failed"
			$ECHO ""
			exit 1
		fi
		chmod $COPYMODE $COPYDSTFULL
		$ECHO "done"
	fi

	COPYNAME="aiwebgate.bin"
	COPYSRC="bin"
	COPYDST="$AVDIR"
	COPYMODE="755"
	COPYDSTFULL="$AVDIR/$COPYNAME"
	$SLEEP 1
	$ECHO -n "copying $COPYSRC/$COPYNAME to $COPYDST ... "
	$SLEEP 2
	cp -f "$COPYSRC/$COPYNAME" "$COPYDST"
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod $COPYMODE $COPYDSTFULL
	$ECHO "done"

	case $DISTRO in
	  gentoo)
		COPYNAME="aiwebgate.Gentoo"
		;;
	  *)
		COPYNAME="aiwebgate"
		;;
	esac
	COPYSRC="sh"
	COPYDST="$AVDIR"
	COPYMODE="755"
	COPYDSTFULL="$AVDIR/aiwebgate"
	$SLEEP 1
	$ECHO -n "copying $COPYSRC/$COPYNAME to $COPYDSTFULL ... "
	$SLEEP 2
	cp -f "$COPYSRC/$COPYNAME" "$COPYDSTFULL"
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod $COPYMODE $COPYDSTFULL
	$ECHO "done"

	COPYNAME="templates"
	COPYSRC="."
	COPYDST="$AVDIR"
	COPYMODE="755"
	COPYDSTFULL="$AVDIR/$COPYNAME"
	$SLEEP 1
	$ECHO -n "copying $COPYSRC/$COPYNAME to $COPYDST ... "
	$SLEEP 2
	cp -fR "$COPYSRC/$COPYNAME" "$COPYDST"
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod $COPYMODE $COPYDSTFULL
	$ECHO "done"

	$SLEEP 1
	$ECHO " "
	$ECHO -n "Would you like AiWebGate to start automatically? ([y]/n) "
	read INPUT

	STARTWEBGATE=1
	case $INPUT in
		n*|N*)
			STARTWEBGATE=0
			;;
	esac

	if [ $STARTWEBGATE -eq 1 ]
	then
		$SLEEP 1
		$ECHO -n "identifying startup script location ... "
		$SLEEP 2
		if [ -z "$RCDIR" ]
		then
			$ECHO "failed"
			$ECHO ""
			$ECHO " "
			$ECHO "************************************************"
			$ECHO " Unable to locate where startup scripts belong."
			$ECHO " You can launch AiWebGate with:"
			$ECHO " "
			$ECHO "      $AVDIR/aiwebgate start"
			$ECHO "************************************************"
			$ECHO " "
			$ECHO -n "Press <ENTER> to continue."
			read INPUT
		else
			$ECHO "found ($RCDIR/)"
			LINKNAME="aiwebgate"
			make_startup_links
		fi
	else
		if [ ! -z "$RCDIR" ]
		then
			LINKNAME="aiwebgate"
			remove_startup_links
		fi
	fi

	$SLEEP 1
	$ECHO "installation of main program complete"
}

install_guard()
{
	COPYGUARDCONF=1
	$SLEEP 1
	$ECHO -n "checking for existing /etc/$GUARDNAME.conf ... "
	$SLEEP 2
	if [ -f "/etc/$GUARDNAME.conf" ]
	then
		COPYGUARDCONF=0
		$ECHO "found"
	else
		$ECHO "not found"
	fi

	if [ $COPYGUARDCONF -eq 1 ]
	then
		$SLEEP 1
		$ECHO -n "copying conf/$GUARDNAME.conf to /etc ... "
		$SLEEP 2
		cp -f conf/$GUARDNAME.conf /etc
		if [ $? -ne 0 ]
		then
			$ECHO "failed"
			$ECHO ""
			exit 1
		fi
		chmod 644 /etc/$GUARDNAME.conf
		$ECHO "done"
	fi

	$SLEEP 1
	$ECHO -n "copying sh/$GUARDNAME to $AVDIR ... "
	$SLEEP 2
	cp -f sh/$GUARDNAME $AVDIR
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod 755 $AVDIR/$GUARDNAME
	$ECHO "done"

	$SLEEP 1
	$ECHO -n "linking $CONFIGGUARDNAME to $CONFIGPROGNAME ... "
	$SLEEP 2
	rm -f $AVDIR/$CONFIGGUARDNAME
	ln -s $AVDIR/$CONFIGPROGNAME $AVDIR/$CONFIGGUARDNAME
	$ECHO "done"

	if [ ! -L "/usr/sbin/$GUARDNAME" ]
	then
		$SLEEP 1
		$ECHO " "
		$ECHO -n "Would you like to create a link in /usr/sbin for $GUARDNAME ? ([y]/n) "
		read INPUT

		CREATELINK=1
		case $INPUT in
			n*|N*)
				CREATELINK=0
				;;
		esac

		if [ $CREATELINK -eq 1 ]
		then
			$SLEEP 1
			$ECHO -n "linking /usr/sbin/$GUARDNAME to $AVDIR/$GUARDNAME ... "
			$SLEEP 2
			rm -f /usr/sbin/$GUARDNAME
			ln -s $AVDIR/$GUARDNAME /usr/sbin/$GUARDNAME
			$ECHO "done"
		fi
	fi

	$SLEEP 1
	$ECHO " "
	$ECHO -n "Would you like AiGuard to start automatically? ([y]/n) "
	read INPUT

	STARTAVGUARD=1
	case $INPUT in
		n*|N*)
			STARTAVGUARD=0
			;;
	esac

	if [ $STARTAVGUARD -eq 1 ]
	then
		$SLEEP 1
		$ECHO -n "identifying startup script location ... "
		$SLEEP 2
		if [ -z "$RCDIR" ]
		then
			$ECHO "failed"
			$ECHO ""
			$ECHO " "
			$ECHO "************************************************"
			$ECHO " Unable to locate where startup scripts belong."
			$ECHO " You can launch AiGuard with:"
			$ECHO " "
			$ECHO "      $AVDIR/$GUARDNAME start"
			$ECHO "************************************************"
			$ECHO " "
			$ECHO -n "Press <ENTER> to continue."
			read INPUT
		else
			$ECHO "found ($RCDIR/)"
			LINKNAME="$GUARDNAME"
			make_startup_links
		fi
	else
		if [ ! -z "$RCDIR" ]
		then
			LINKNAME="$GUARDNAME"
			remove_startup_links
		fi
	fi

	$SLEEP 1
	$ECHO "installation of AiGuard complete"
}
	

# main()

SLEEP="sleep"
AVDIR="/usr/lib/AVIRA"
DOCDIR="$AVDIR/doc"
DOCFILES="VERSION LICENSE README RELEASE"
PROGNAME="avira"
VDFNAME="avira.vdf"
UPDATENAME="aiupdater"
GUARDNAME="aiguard"
CONFIGGUARDNAME="configaiguard"
CONFIGPROGNAME="configavira"
PRODUCTVERSION="1.1.1-1r8"
PRODUCT="webgate"
VARIANT="AIEN"
STEP=1
EXELIST="which id head cat grep cp chmod ln uname ps sed"
CPLIST=""
FULLPRODUCTNAME=""
HASGUARD=0
HASCMDSCANNER=0
HASGUI=0

case $PRODUCT in
	webgate)
		CPLIST="bin/$PROGNAME vdf/$VDFNAME conf/$PROGNAME.conf sh/$UPDATENAME sh/$CONFIGPROGNAME sh/uninstall"
		FULLPRODUCTNAME="AVIRA WebGate V.1"
		HASGUARD=0
		HASCMDSCANNER=0
		HASGUI=0
		;;
	server)
		CPLIST="bin/$PROGNAME vdf/$VDFNAME conf/$PROGNAME.conf conf/$GUARDNAME.conf sh/$UPDATENAME sh/$GUARDNAME sh/$CONFIGPROGNAME sh/uninstall"
		FULLPRODUCTNAME="AVIRA for UNIX Server V.1"
		HASGUARD=1
		HASCMDSCANNER=1
		HASGUI=0
		;;
	desktop)
		CPLIST="bin/$PROGNAME vdf/$VDFNAME conf/$PROGNAME.conf conf/$GUARDNAME.conf sh/$UPDATENAME sh/$GUARDNAME sh/$CONFIGPROGNAME sh/uninstall"
		FULLPRODUCTNAME="AVIRA Desktop for UNIX V.1"
		HASGUARD=1
		HASCMDSCANNER=1
		HASGUI=0
		;;

	*)
		echo "Invalid product configuration"
		exit 1
		;;
esac

for arg in $@
do
	case $arg in
		--fast|-f|--nosleep)
			SLEEP="noop"
			;;
		--help|-h)
			echo "\`install' installs $FULLPRODUCTNAME."
			echo " "
			echo "Usage: ./install [OPTION]..."
			echo " "
			echo "Installation:"
			echo "  -h, --help   display this help and exit"
			echo "  -f, --fast   install without delays"
			echo " "
			exit 0
			;;

	esac
done

check_os
set_commands

check_copyfiles
check_executables

ID="`id`"
CUT="`echo $ID | sed -e s/\^uid=0\(//`"
if [ "$CUT" = "$ID" ]
then
	$ECHO ""
	$ECHO "This script must be run as root."
	$ECHO " "
	exit 1
fi

if [ $HASGUARD -eq 1 ]
then
	if [ ! -z "`$PSAX | grep avira.*[-]-workstation`" -o ! -z "`$PSAX | grep avira.*[-]-server`" ]
	then
		$ECHO ""
		$ECHO "A version of AiGuard appears to be running."
		$ECHO " "
		$ECHO "Please shut down your existing AiGuard before installing"
		$ECHO "this version. You can stop the running version with:"
		$ECHO " "
		$ECHO "     $AVDIR/$GUARDNAME stop"
		$ECHO " "
		exit 1
	fi
fi

$ECHO " "

$ECHO "Starting $FULLPRODUCTNAME $PRODUCTVERSION installation..."

$ECHO " "

identify_rcd
$ECHO " "

if [ -d "$AVDIR" ]
then
	$SLEEP 1
	$ECHO "previous installation of AVIRA found"
	$ECHO "(updating necessary components)"
	$SLEEP 2
	$ECHO " "
fi

$SLEEP 1

if [ $HASCMDSCANNER -eq 1 ]
then
	$ECHO "$STEP) installing command line scanner"
else
	$ECHO "$STEP) installing AVIRA Engine"
fi
if [ ! -d "$AVDIR" ]
then
	$SLEEP 1
	$ECHO -n "creating install directory $AVDIR ... "
	mkdir -p $AVDIR
	chmod 755 $AVDIR
	$SLEEP 2
	$ECHO "done"
fi

NEWLINE=0
for KEY in `ls | grep -i \.key`
do
	$SLEEP 1
	$ECHO -n "copying $KEY to $AVDIR ... "
	$SLEEP 2
	if [ $NEWLINE -eq 0 -a -f "$AVDIR/$KEY" ]
	then
		$ECHO " "
		NEWLINE=1
	fi
	cp -ip $KEY $AVDIR
	if [ $NEWLINE -eq 0 ]
	then
		$ECHO "done"
	fi
done

COPYEXE=1
if [ -x "$AVDIR/$PROGNAME" ]
then
	$SLEEP 1
	$ECHO -n "checking executable file ... "
	$SLEEP 2

	SEARCHSTRING="Core version:"
	CUT=`$AVDIR/$PROGNAME --version | grep "$SEARCHSTRING"`
	CUT=`echo $CUT | sed -e "s/$SEARCHSTRING//"`
	VERSION="$CUT"
	convert_version
	OLDVERSION=$VERSION
	CUT=`bin/$PROGNAME --version | grep "$SEARCHSTRING"`
	CUT=`echo $CUT | sed -e "s/$SEARCHSTRING//"`
	VERSION="$CUT"
	convert_version
	NEWVERSION=$VERSION
	compare_versions
	RESULT1=$?

	SEARCHSTRING="Engine version:"
	CUT=`$AVDIR/$PROGNAME --version | grep "$SEARCHSTRING"`
	CUT=`echo $CUT | sed -e "s/$SEARCHSTRING//"`
	VERSION="$CUT"
	convert_version
	OLDVERSION=$VERSION
	CUT=`bin/$PROGNAME --version | grep "$SEARCHSTRING"`
	CUT=`echo $CUT | sed -e "s/$SEARCHSTRING//"`
	VERSION="$CUT"
	convert_version
	NEWVERSION=$VERSION
	compare_versions
	RESULT2=$?

	if [ $RESULT2 -lt $RESULT1 ]
	then
		RESULT1=$RESULT2
	fi
	$AVDIR/$PROGNAME --version > /dev/null 2>&1
	if [ $? -ne 0 ]
	then
		RESULT1=4
	fi
	case "$RESULT1" in
		0)
			$ECHO "old version"
			;;
		1)
			COPYEXE=0
			$ECHO "compatible"
			;;
		2)
			COPYEXE=0
			$ECHO "compatible"
			;;
		3)
			$ECHO "incompatible"
			$ECHO ""
			$ECHO "Your $PROGNAME program is too new for this version"
			$ECHO "of $FULLPRODUCTNAME."
			$ECHO "Please download the latest version from:"
			$ECHO " "
			if [ "$VARIANT" = "AVDE" ]
			then
				$ECHO "http://www.avira.com   <- english"
				$ECHO "http://www.avira.com  <- german"
			else
				$ECHO "http://www.avira.com"
			fi
			$ECHO " "
			exit 1
			;;
		*)
			$ECHO "error (overwriting)"
			;;
	esac
fi

COPYVDF=1
if [ -f "$AVDIR/$VDFNAME" ]
then
	$SLEEP 1
	$ECHO -n "checking data file ... "
	$SLEEP 2

	CUT="`head -n4 $AVDIR/$VDFNAME | grep Version`"
	CUT="`echo $CUT | sed -e s/Version://`"
	VERSION="$CUT"
	convert_version
	OLDVERSION=$VERSION
	CUT="`head -n4 vdf/$VDFNAME | grep Version`"
	CUT="`echo $CUT | sed -e s/Version://`"
	VERSION="$CUT"
	convert_version
	NEWVERSION=$VERSION

	compare_versions
	case "$?" in
		0)
			$ECHO "old version"
			;;
		1)
			COPYVDF=0
			$ECHO "compatible"
			;;
		2)
			COPYVDF=0
			$ECHO "compatible"
			;;
		3)
			$ECHO "incompatible"
			$ECHO ""
			$ECHO "Your data file is too new for this version"
			$ECHO "of $FULLPRODUCTNAME."
			$ECHO "Please download the latest version from:"
			$ECHO " "
			if [ "$VARIANT" = "AVDE" ]
			then
				$ECHO "http://www.avira.com   <- english"
				$ECHO "http://www.avira.com  <- german"
			else
				$ECHO "http://www.avira.com"
			fi
			$ECHO " "
			exit 1
			;;
		*)
			$ECHO "error (overwriting)"
			;;
	esac
fi

COPYCONF=1
$SLEEP 1
$ECHO -n "checking for existing /etc/$PROGNAME.conf ... "
$SLEEP 2
if [ -f "/etc/$PROGNAME.conf" ]
then
	COPYCONF=0
	$ECHO "found"
else
	$ECHO "not found"
fi

if [ $COPYEXE -eq 1 ]
then
	$SLEEP 1
	$ECHO -n "copying bin/$PROGNAME to $AVDIR ... "
	$SLEEP 2
	cp -f bin/$PROGNAME $AVDIR
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod 755 $AVDIR/$PROGNAME
	$ECHO "done"
fi

if [ $COPYVDF -eq 1 ]
then
	$SLEEP 1
	$ECHO -n "copying vdf/$VDFNAME to $AVDIR ... "
	$SLEEP 2
	cp -f vdf/$VDFNAME $AVDIR
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod 644 $AVDIR/$VDFNAME
	$ECHO "done"
fi

if [ $COPYCONF -eq 1 ]
then
	$SLEEP 1
	$ECHO -n "copying conf/$PROGNAME.conf to /etc ... "
	$SLEEP 2
	cp -f conf/$PROGNAME.conf /etc
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod 644 /etc/$PROGNAME.conf
	$ECHO "done"
fi

# Copy some documentation
$SLEEP 1
$ECHO -n "copying documentation files to $DOCDIR/$PRODUCT ... "
$SLEEP 2
if [ ! -d $DOCDIR/$PRODUCT ]
then
	mkdir -p $DOCDIR/$PRODUCT
fi
cp -f $DOCFILES $DOCDIR/$PRODUCT
echo "done"

if [ -d "evaluation" ]
then
	for RCFILE in `ls evaluation | grep -i \.rck`
	do
		RCCODE="`head -n1 evaluation/$RCFILE`"
		grep $RCCODE /etc/$PROGNAME.conf > /dev/null 2>&1
		if [ $? -ne 0 ]
		then
			echo "# $FULLPRODUCTNAME Evaluation Code (no Activation Key)" >> /etc/$PROGNAME.conf
			echo "License $RCCODE" >> /etc/$PROGNAME.conf
			echo "" >> /etc/$PROGNAME.conf
		fi
	done
fi

$SLEEP 1
$ECHO -n "copying sh/uninstall to $AVDIR ... "
$SLEEP 2
cp -f sh/uninstall $AVDIR
if [ $? -ne 0 ]
then
	$ECHO "failed"
	$ECHO ""
	exit 1
fi
chmod 755 $AVDIR/uninstall
$ECHO "done"

$SLEEP 1
$ECHO -n "copying sh/$CONFIGPROGNAME to $AVDIR ... "
$SLEEP 2
cp -f sh/$CONFIGPROGNAME $AVDIR
if [ $? -ne 0 ]
then
	$ECHO "failed"
	$ECHO ""
	exit 1
fi
chmod 755 $AVDIR/$CONFIGPROGNAME
$ECHO "done"

if [ "${OS}" = "sunos" ]
then
	$SLEEP 1
	$ECHO -n "copying sh/echo_sunos to $AVDIR ... "
	$SLEEP 2
	cp -f sh/echo_sunos $AVDIR
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod 755 $AVDIR/echo_sunos
	$ECHO "done"
fi

$AVDIR/$PROGNAME --version > /dev/null 2>&1

# Fix storage files permissions
if [ -d "$AVDIR/storage" ]
then
	chmod 755 $AVDIR/storage
	chmod 644 $AVDIR/storage/* 2>/dev/null
fi

if [ ! -L "/usr/bin/$PROGNAME" ]
then
	$SLEEP 1
	$ECHO " "
	$ECHO -n "Would you like to create a link in /usr/bin ? ([y]/n) "
	read INPUT

	CREATELINK=1
	case $INPUT in
		n*|N*)
			CREATELINK=0
			;;
	esac

	if [ $CREATELINK -eq 1 ]
	then
		$SLEEP 1
		$ECHO -n "linking /usr/bin/$PROGNAME to $AVDIR/$PROGNAME ... "
		$SLEEP 2
		rm -f /usr/bin/$PROGNAME
		ln -s $AVDIR/$PROGNAME /usr/bin/$PROGNAME
		$ECHO "done"
	fi
fi

$SLEEP 1
if [ $HASCMDSCANNER -eq 1 ]
then
	$ECHO "installation of command line scanner complete"
else
	$ECHO "installation of AVIRA Engine complete"
fi

STEP=`expr $STEP + 1`
$ECHO " "
$SLEEP 1
$ECHO " "
$SLEEP 1
$ECHO "$STEP) installing automatic internet updater"
$SLEEP 1
$ECHO "An automatic internet updater is available with version $PRODUCTVERSION of"
$ECHO "$FULLPRODUCTNAME. This is a daemon that will run in the background"
$ECHO "and automatically check for updates (internet access is required)."
$ECHO "You may also manually check for updates using:"
$ECHO " "
$ECHO "     avira --update"
$ECHO " "
$ECHO "You do not need to install the automatic internet updater in order"
$ECHO "to manually check for updates. Please read the README file for more"
$ECHO "information on updates and how they can best suit you."
$ECHO " "
if [ -f "$AVDIR/$UPDATENAME" ]
then
	REINSTALL="re-"
else
	REINSTALL=""
fi
$ECHO -n "Would you like to ${REINSTALL}install the automatic internet updater? (y/[n]) "
read INPUT

INSTALLUPDATER=0
case $INPUT in
	y*|Y*|j*|J*)
		INSTALLUPDATER=1
		;;
esac

if [ $INSTALLUPDATER -eq 1 ]
then
	$SLEEP 1
	$ECHO -n "copying sh/$UPDATENAME to $AVDIR ... "
	$SLEEP 2
	cp -f sh/$UPDATENAME $AVDIR
	if [ $? -ne 0 ]
	then
		$ECHO "failed"
		$ECHO ""
		exit 1
	fi
	chmod 755 $AVDIR/$UPDATENAME
	$ECHO "done"

	$SLEEP 1
	$ECHO " "
	$ECHO -n "Would you like the automatic updater to start automatically? ([y]/n) "
	read INPUT

	STARTUPDATER=1
	case $INPUT in
		n*|N*)
			STARTUPDATER=0
			;;
	esac

	if [ $STARTUPDATER -eq 1 ]
	then
		$SLEEP 1
		$ECHO -n "identifying startup script location ... "
		$SLEEP 2
		if [ -z "$RCDIR" ]
		then
			$ECHO "failed"
			$ECHO ""
			$ECHO " "
			$ECHO "*****************************************************"
			$ECHO " Unable to locate where startup scripts belong."
			$ECHO " You can launch the automatic internet updater with:"
			$ECHO " "
			$ECHO "      $AVDIR/$UPDATENAME start"
			$ECHO "*****************************************************"
			$ECHO " "
			$ECHO -n "Press <ENTER> to continue."
			read INPUT
		else
			$ECHO "found ($RCDIR/)"
			LINKNAME="$UPDATENAME"
			make_startup_links
		fi

	else
		if [ ! -z "$RCDIR" ]
		then
			LINKNAME="$UPDATENAME"
			remove_startup_links
		fi
	fi

	$SLEEP 1
	$ECHO "${REINSTALL}installation of automatic internet updater complete"
else
	$ECHO "automatic internet updater will NOT be ${REINSTALL}installed"
fi

if [ $HASGUARD -eq 1 ]
then
	STEP=`expr $STEP + 1`
	$ECHO " "
	$SLEEP 1
	$ECHO " "
	$SLEEP 1
	$ECHO "$STEP) installing AiGuard"
	$SLEEP 1
	$ECHO "Version $PRODUCTVERSION of $FULLPRODUCTNAME is capable of on-access,"
	$ECHO "real-time scanning of files. This provides the ultimate protection"
	$ECHO "against viruses and other unwanted software. The on-access scanner"
	$ECHO "(called AiGuard) is based on Dazuko, a free software project providing"

	if [ "$OS" = "sunos" ]
	then

		KMODULE="dazuko"

		$ECHO "access control."
		$ECHO " "
		$ECHO -n "Would you like to install AiGuard? ([y]/n) "
		read INPUT

		case $INPUT in
			n*|N*)
				INPUT=0
				;;
			*)
				INPUT=1
		esac

		if [ $INPUT -eq 1 ]
		then
			GUARDINSTALLEDAS=""

			$SLEEP 1
			$ECHO -n "copying dazuko/dazuko.conf to /usr/kernel/drv ... "
			$SLEEP 2
			if [ ! -d "/usr/kernel/drv" ]
			then
				mkdir -p /usr/kernel/drv
				chmod 755 /usr/kernel/drv
			fi
			cp -f dazuko/dazuko.conf /usr/kernel/drv
			if [ $? -ne 0 ]
			then
				$ECHO "failed"
				$ECHO ""
				OK=0
				exit 1
			fi
			chmod 644 /usr/kernel/drv/dazuko.conf
			$ECHO "done"

			$SLEEP 1
			$ECHO -n "copying dazuko/$KMODULE to /usr/kernel/drv/sparcv9 ... "
			$SLEEP 2
			if [ ! -d "/usr/kernel/drv/sparcv9" ]
			then
				mkdir -p /usr/kernel/drv/sparcv9
				chmod 755 /usr/kernel/drv/sparcv9
			fi
			cp -f dazuko/$KMODULE /usr/kernel/drv/sparcv9
			if [ $? -ne 0 ]
			then
				$ECHO "failed"
				$ECHO ""
				OK=0
				exit 1
			fi
			chmod 644 /usr/kernel/drv/sparcv9/dazuko
			$ECHO "done"

			$SLEEP 1
			$ECHO -n "copying dazuko/$KMODULE to $AVDIR/$KERNELVERSION ... "
			$SLEEP 2
			if [ ! -d "$AVDIR/$KERNELVERSION" ]
			then
				mkdir -p $AVDIR/$KERNELVERSION
				chmod 755 $AVDIR/$KERNELVERSION
			fi
			cp -f dazuko/$KMODULE $AVDIR/$KERNELVERSION
			if [ $? -ne 0 ]
			then
				$ECHO "failed"
				$ECHO ""
				OK=0
				exit 1
			fi
			chmod 644 $AVDIR/$KERNELVERSION/$KMODULE
			$ECHO "done"

			if [ ! -c "/devices/pseudo/dazuko@0:dazuko" ]
			then
				$SLEEP 1
				$ECHO -n "installing Dazuko ... "
				$SLEEP 2
				add_drv $KMODULE
				if [ $? -ne 0 ]
				then
					$ECHO "failed"
					$ECHO ""
					OK=0
					exit 1
				fi
				$ECHO "done"
			fi

			install_guard
			GUARDINSTALLEDAS="module"
		else
			$ECHO "AiGuard will NOT be installed. See src/HOWTO-Dazuko for more"
			$ECHO "information about Dazuko."
			$SLEEP 1
			GUARDINSTALLEDAS=""
		fi

	else

		$ECHO "access control. In order to use AiGuard you will need to compile Dazuko"
		$ECHO "for your kernel. Please refer to src/HOWTO-Dazuko for information on how"
		$ECHO "to do this. There are several ways in which you can install AiGuard."
		$ECHO " "
		$ECHO "        module     - Dazuko will be loaded by the $GUARDNAME script"
		$ECHO " "
		$ECHO "        kernel     - Dazuko is always loaded"
		$ECHO "                     (and should not be loaded by the $GUARDNAME script)"
		$ECHO " "
		$ECHO "        no install - do not install AiGuard at this time"
		$ECHO " "
		$ECHO "Note: Dazuko currently only works with GNU/Linux and FreeBSD systems."
		$ECHO "      If you are interested in helping us port Dazuko to OpenBSD,"
		$ECHO "      feel free to check out the Dazuko Project at:"
		$ECHO "      http://www.dazuko.org"
		$ECHO " "
		$ECHO "available options: m k n"

		case "${OS}" in
			freebsd)
				KMODULE="dazuko.ko"
				INSMOD="kldload"
				RMMOD="kldunload"
				;;
			linux26)
				if [ "`uname -a | grep ' SMP '`" ]; then
					KERNELVERSION="${KERNELVERSION}-smp"
				fi
				KMODULE="dazuko.ko"
				INSMOD="insmod"
				RMMOD="rmmod"
				;;
			*)
				if [ "`uname -a | grep ' SMP '`" ]; then
					KERNELVERSION="${KERNELVERSION}-smp"
				fi
				KMODULE="dazuko.o"
				INSMOD="insmod"
				RMMOD="rmmod"
				;;
		esac

		OK=0
		while [ $OK -eq 0 ]
		do
			getDEV
			if [ ! -z "$DEV" -o -f "$AVDIR/$KERNELVERSION/$KMODULE" ]
			then
				QDEFAULT="m"
			else
				QDEFAULT="n"
			fi

			$ECHO " "
			$ECHO -n "How should AiGuard be installed? [$QDEFAULT] "
			read INPUT

			if [ -z "$INPUT" ]
			then
				INPUT="$QDEFAULT"
			fi

			case $INPUT in
				m*|M*)
					if [ -f "$AVDIR/$KERNELVERSION/$KMODULE" ]
					then
						QDEFAULT=" [$AVDIR/$KERNELVERSION/$KMODULE]"
					else
						QDEFAULT=""
					fi
					$ECHO -n "Enter the full path to ${KMODULE}${QDEFAULT}: "
					read INPUT

					if [ -z "$INPUT" -a ! -z "$QDEFAULT" ]
					then
						INPUT="$AVDIR/$KERNELVERSION/$KMODULE"
					fi

					if [ -f "$INPUT" ]
					then
						$ECHO " "

						EXELIST="$EXELIST $INSMOD $RMMOD"
						check_executables

						OK=1

						$SLEEP 1
						getDEV
						if [ ! -z "$DEV" ]
						then
							$ECHO ""
							$ECHO "Dazuko has been detected (already loaded). Please"
							$ECHO "remove the running Dazuko module before running"
							$ECHO "this install program. If Dazuko is loaded each time"
							$ECHO "by another process, then choose option 'k'."
							$ECHO "Otherwise, please unload Dazuko before continuing."
							$ECHO " "
							$ECHO "$RMMOD dazuko"
							OK=0
						fi

						if [ $OK -eq 1 ]
						then
							$ECHO -n "testing $INPUT ... "
							$SLEEP 2
							$INSMOD $INPUT
							RET=$?
							if [ $RET -eq 0 ]
							then
								$RMMOD dazuko
							fi

							if [ $RET -ne 0 ]
							then
								$ECHO "failed"
								$ECHO ""
								$ECHO "This Dazuko module does not appear to work properly with"
								$ECHO "the running kernel. Please make sure that you compile"
								$ECHO "Dazuko using the SAME source code as your kernel. You"
								$ECHO "can refer to the Dazuko web page for help:"
								$ECHO "http://www.dazuko.org"
								OK=0
							else
								$ECHO "ok"
							fi
						fi

						if [ $OK -eq 1 ]
						then
							if [ "$INPUT" != "$AVDIR/$KERNELVERSION/$KMODULE" ]
							then
								$SLEEP 1
								$ECHO -n "detecting kernel version ... "
								$SLEEP 2
								$ECHO "$KERNELVERSION"

								$SLEEP 1
								$ECHO -n "copying $INPUT to $AVDIR/$KERNELVERSION ... "
								$SLEEP 2
								if [ ! -d "$AVDIR/$KERNELVERSION" ]
								then
									mkdir -p $AVDIR/$KERNELVERSION
									chmod 755 $AVDIR/$KERNELVERSION
								fi
								cp -f $INPUT $AVDIR/$KERNELVERSION
								if [ $? -ne 0 ]
								then
									$ECHO "failed"
									$ECHO ""
									OK=0
									exit 1
								fi
								chmod 644 $AVDIR/$KERNELVERSION/$KMODULE
								$ECHO "done"
							fi
						fi
					else
						$ECHO "$INPUT not found."
					fi

					if [ $OK -eq 1 ]
					then
						install_guard
						GUARDINSTALLEDAS="module"
					fi
					;;
				k*|K*)
					OK=1

					if [ -z "$DEV" ]
					then
						$ECHO ""
						$ECHO "Dazuko has not been detected as loaded. If the $GUARDNAME"
						$ECHO "script should load Dazuko, you need to choose option 'm'."
						$ECHO "Otherwise, please load Dazuko before continuing."
						OK=0
					fi

					if [ $OK -eq 1 ]
					then
						install_guard
						GUARDINSTALLEDAS="kernel"
					fi
					;;
				n*|N*)
					$ECHO "AiGuard will NOT be installed. See src/HOWTO-Dazuko for more"
					$ECHO "information about Dazuko."
					$SLEEP 1
					GUARDINSTALLEDAS=""
					OK=1
					;;
			esac
		done

	fi
fi

if [ "$PRODUCT" = "webgate" ]
then
	STEP=`expr $STEP + 1`
	$ECHO " "
	$SLEEP 1
	$ECHO " "
	$SLEEP 1
	$ECHO "$STEP) installing main program"

	install_webgate
fi

INSTALLGUI=0
if [ $HASGUI -eq 1 ]
then
	STEP=`expr $STEP + 1`
	$ECHO " "
	$SLEEP 1
	$ECHO " "
	$SLEEP 1
	$ECHO "$STEP) installing GUI"
	$SLEEP 1
	$ECHO "This product comes with a GUI that allows you to monitor realtime"
	$ECHO "activity, view logs, and configure the product. This tool is optional"
	$ECHO "(not required) for the product to run."
	$ECHO " "
	$ECHO "The GUI requires Java 1.4.0 or higher."
	$ECHO " "
	$ECHO -n "Would you like to install the GUI? (y/[n]) "
	read INPUT

	case $INPUT in
		y*|Y*|j*|J*)
			INSTALLGUI=1
			;;
	esac
fi

if [ "$PRODUCT" = "webgate" ]
then
	if [ $HASGUI -eq 1 -a $INSTALLGUI -eq 1 ]
	then
		if [ ! -f "/etc/aiwebgate.conf" ]
		then
			COPYNAME="aiwebgate.conf"
			COPYSRC="conf"
			COPYDST="/etc"
			COPYMODE="644"
			COPYDSTFULL="$COPYDST/$COPYNAME"
			$SLEEP 1
			$ECHO -n "copying $COPYSRC/$COPYNAME to $COPYDST ... "
			$SLEEP 2
			cp -f "$COPYSRC/$COPYNAME" "$COPYDST"
			if [ $? -ne 0 ]
			then
				$ECHO "failed"
				$ECHO ""
				exit 1
			fi
			chmod $COPYMODE $COPYDSTFULL
			$ECHO "done"

			COPYNAME="aiwebgategui"
			COPYSRC="sh"
			COPYDST="$AVDIR"
			COPYMODE="755"
			COPYDSTFULL="$COPYDST/$COPYNAME"
			$SLEEP 1
			$ECHO -n "copying $COPYSRC/$COPYNAME to $COPYDST ... "
			$SLEEP 2
			cp -f "$COPYSRC/$COPYNAME" "$COPYDST"
			if [ $? -ne 0 ]
			then
				$ECHO "failed"
				$ECHO ""
				exit 1
			fi
			chmod $COPYMODE $COPYDSTFULL
			$ECHO "done"
		fi
	elif [ $HASGUI -eq 0 -o $INSTALLGUI -eq 0 ]
	then
		if [ ! -f "/etc/aiwebgate.conf" ]
		then
			if [ $HASGUI -eq 1 ]
			then
				COPYNAME="aiwebgate.conf-nogui"
			else
				COPYNAME="aiwebgate.conf"
			fi
			COPYSRC="conf"
			COPYDST="/etc"
			COPYMODE="644"
			COPYDSTFULL="/etc/aiwebgate.conf"
			$SLEEP 1
			$ECHO -n "copying $COPYSRC/$COPYNAME to $COPYDST ... "
			$SLEEP 2
			cp -f "$COPYSRC/$COPYNAME" "$COPYDST"
			if [ $? -ne 0 ]
			then
				$ECHO "failed"
				$ECHO ""
				exit 1
			fi
			chmod $COPYMODE $COPYDSTFULL
			$ECHO "done"
		fi
	fi
fi

if [ $HASGUI -eq 1 ]
then
	if [ $INSTALLGUI -eq 1 ]
	then
		install_gui
	else
		$ECHO "GUI will NOT be installed"
	fi
fi

STEP=`expr $STEP + 1`
$ECHO " "
$SLEEP 1
$ECHO " "
$SLEEP 1
$ECHO "$STEP) configuring AVIRA"
$SLEEP 1
if [ $HASGUARD -eq 1 ]
then
	$ECHO -n "Would you like to configure AVIRA now? ([y]/n) "
else
	$ECHO -n "Would you like to configure AVIRA core components now? ([y]/n) "
fi
read INPUT

CONFIGPROG=1
case $INPUT in
	n*|N*)
		CONFIGPROG=0
		;;
esac

if [ $CONFIGPROG -eq 1 ]
then
	if [ $HASGUARD -eq 1 -a -f "$AVDIR/$CONFIGGUARDNAME" ]
	then
		$AVDIR/$CONFIGGUARDNAME
	else
		$AVDIR/$CONFIGPROGNAME
	fi
	$ECHO -n "Press <ENTER> to continue."
	read INPUT
else
	if [ -f "$AVDIR/$CONFIGGUARDNAME" ]
	then
		$AVDIR/$CONFIGGUARDNAME --check-conf
		$ECHO -n "Press <ENTER> to continue."
		read INPUT
	fi
fi

$ECHO " "
$ECHO " "
$ECHO "Installation of the following features complete:"
$SLEEP 1
if [ $HASCMDSCANNER -eq	 1 ]
then
	$ECHO -n "     AVIRA command line scanner"
else
	$ECHO -n "     AVIRA Engine"
fi
if [ $COPYEXE -eq 0 ]
then
	$ECHO -n " (previously installed)"
fi
$ECHO " "
if [ -f "$AVDIR/$UPDATENAME" ]
then
	$SLEEP 1
	$ECHO -n "     AVIRA Automatic Internet Updater"
	if [ $INSTALLUPDATER -eq 0 ]
	then
		$ECHO -n " (previously installed)"
	fi
	$ECHO " "
fi
if [ $HASGUARD -eq 1 ]
then
	if [ -f "/etc/$GUARDNAME.conf" ]
	then
		$SLEEP 1
		$ECHO -n  "     AVIRA Guard"
		if [ -z "$GUARDINSTALLEDAS" ]
		then
			$ECHO -n " (previously installed)"
		fi
		$ECHO " "
	fi
fi
if [ "$PRODUCT" = "webgate" ]
then
		$SLEEP 1
		$ECHO "     AVIRA WebGate"
fi
if [ $HASGUI -eq 1 ]
then
	if [ $INSTALLGUI -eq 1 ]
	then
		$SLEEP 1
		$ECHO "     AVIRA GUI"
	fi
fi

$SLEEP 1
$ECHO " "
$SLEEP 1
$ECHO " "
$ECHO "Be sure to read the README file for additional information."
$ECHO "Thank you for your interest in $FULLPRODUCTNAME."
$ECHO " "
