#! /bin/sh
#
# Run cfengine if both the executable and config file are available.
# Support for retrieving admin files from CVS or RCS is included.
#
# Written by Brian White <bcwhite@pobox.com>

# Set run_cvs to "1" if you want to call CVS to get the latest version
# of the admin files.
run_cvs=0
CVSROOT=/var/lib/cvs;

# Set run_rcs to "1" if you want to call RCS to get the latest version
# of the admin files
run_rcs=0

CFENGINE=/usr/bin/cfengine
CFINPUTS=/etc/cfengine
CFCONF=cfengine.conf
CFLOG=/var/log/cfengine.log

export CVSROOT
export CFINPUTS

if [ -x $CFENGINE ]
then

    echo "===============================================================================" >> $CFLOG
    date >> $CFLOG
    echo "" >> $CFLOG

    if [ $run_cvs = 1 ]
    then
        cd /etc
	echo "----- Begin CVS Checkout -----" >>$CFLOG
        cvs -q checkout -P -A cfengine >>$CFLOG 2>&1
	echo "-----  End  CVS Checkout -----" >>$CFLOG
	echo "" >>$CFLOG
    fi


    if [ $run_rcs = 1 ]
    then
	echo "----- Begin RCS Checkout -----" >>$CFLOG
        find $CFINPUTS -type d -name RCS -exec "cd {}/..; co -q RCS/*" \; >>$CFLOG 2>&1
	echo "-----  End  RCS Checkout -----" >>$CFLOG
	echo "" >>$CFLOG
    fi


    if [ -f $CFINPUTS/$CFCONF ]
    then
	$CFENGINE -v -f $CFINPUTS/$CFCONF >> $CFLOG
    fi

    echo "" >> $CFLOG
fi
