#!/bin/bash
#Copyright 2000-2002 William Stearns <wstearns@pobox.com>
#Released under the GPL.

#set -x

#FIXME put in patch-o-matic calls.

if [ -z "$IPTABLESVERSION" ]; then
	echo IPTABLESVERSION unset, skipping iptables.
	exit
fi

exec 2>&1
PROJECT="iptables"
BKLIBDIR="${BKLIBDIR:-/var/lib/buildkernel}/"
THISSCRIPT="$BKLIBDIR/bkrun-$PROJECT"   #We can't use $0 as this script is sourced; $0=/usr/bin/buildkernel

if [ -f $BKLIBDIR/${PROJECT}-options ]; then
	echo $PROJECT loading options
	. $BKLIBDIR/${PROJECT}-options
fi
echo $PROJECT \(Version $IPTABLESVERSION\) $1 called from Buildkernel

IPTABLESSOURCEDIR=${IPTABLESSOURCEDIR:-"/usr/src/iptables-$IPTABLESVERSION"}
IPTABLESTAR=${IPTABLESTAR:-"$BKSOURCEDIR/iptables-$IPTABLESVERSION.tar.gz"}
IPTABLESTESTFILE=${IPTABLESTESTFILE:-"$IPTABLESSOURCEDIR/COPYING"}

case $1 in
POSTLOADVARS)		:		;;
POSTGETSOURCE)		:		;;
POSTOPENSOURCE)
	if [ ! -f "$IPTABLESTESTFILE" ]; then	#Open up source
		if [ -f "$IPTABLESTAR" ]; then
			mkdir --parents $IPTABLESSOURCEDIR
			cd $IPTABLESSOURCEDIR ; cd ..
			case $IPTABLESTAR in
			*.tar.gz)	tar -xzvf $IPTABLESTAR								;;
			*.tar.bz2)	cat $IPTABLESTAR | bunzip2 - | tar -xvf -					;;
			*.tar)		tar -xvf $IPTABLESTAR								;;
			*)			echo Don\'t know how to open $IPTABLESTAR \! ; bkbeep ; sleep 30	;;
			esac
			if [ ! -f "$IPTABLESTESTFILE" ]; then
				echo Still no $IPTABLESTESTFILE after attempting to open \! ; bkbeep ; sleep 30
			fi
		else
			echo Netfilter source if not yet opened and we dont have $IPTABLESTAR \! ; bkbeep ; sleep 30
		fi
	fi

	#Must patch kernel source here, as the user will be choosing what netfilter modules to include in the configure step.
	if [ -f "$IPTABLESTESTFILE" ] && [ -n $IPTABLESSOURCEDIR ] && cd $IPTABLESSOURCEDIR/patch-o-matic ; then
		KERNEL_DIR=/usr/src/linux-$BKKERNELTOBUILD ./runme --batch extra
	else
		echo Unable to get into iptables patch-o-matic dir to patch kernel, sorry. ; bkbeep ; sleep 30
	fi	
	;;
POSTCONFIGURE)		:		;;
POSTKERNELBUILD)	:		;;
POSTMODULEBUILD)	:		;;
POSTINSTALL)
	if [ -n "$IPTABLESSOURCEDIR" ]; then
		cd $IPTABLESSOURCEDIR >/dev/null
		if [ `pwd` != "$IPTABLESSOURCEDIR" ]; then
			echo can\'t change directory, exiting
		else
			make clean
			make KERNEL_DIR=/usr/src/linux
			make install
			depmod -a
		fi
	fi
	;;
POSTCLEAN)		:		;;
''|ALL)
	. $THISSCRIPT POSTLOADVARS
	. $THISSCRIPT POSTGETSOURCE
	. $THISSCRIPT POSTOPENSOURCE
	. $THISSCRIPT POSTCONFIGURE
	. $THISSCRIPT POSTKERNELBUILD
	. $THISSCRIPT POSTMODULEBUILD
	. $THISSCRIPT POSTINSTALL
	. $THISSCRIPT POSTCLEAN
	;;
*)	echo unrecognized phase $1 ;;
esac

