#!/bin/sh
#
# $Date: 2000/07/16 12:00:02 $
# $Id: save_config,v 1.1.5.1 2000/07/16 12:00:02 root Exp root $
#
# File: save_configuration
# Desc: Save the FCT firewall configuration files
# 
# Author : Jens Friedrich
# 
# (c) Copyright 1997 Jens Friedrich
#
# $Log: save_config,v $
# Revision 1.1.5.1  2000/07/16 12:00:02  root
# FCT
#
# Revision 1.1.4.2  2000/07/15 19:01:24  jens
# Rev.
#
# Revision 1.1.4.1  1999/08/01 21:44:55  jens
# .
#
# Revision 1.1  1999/08/01 21:44:55  jens
# Initial revision
#
# Revision 1.1.0.1  1998/11/02 09:36:30  jens
# .
#
# Revision 1.1  1998/11/02 09:35:49  jens
# Initial revision
#
# Revision 1.1  1998/11/02 09:33:28  jens
# Initial revision
#
# Revision 1.0.9.1  1998/06/01 19:35:23  jens
# initial ci -r 1.0.9
#
# Revision 1.0  1998/06/01 19:32:57  jens
# initial ci -r 1.0
#
#

# where is the firewall-package located ?
[ -z "$FWDIR" ] && FWDIR=`echo $0 | sed -e 's/[\/][A-Za-z0-9_\.-]*$//'`

usage ()
{
    echo "Usage: $0           [tarfile]   save    FCT-configuration-files"
    echo "       $0 -i [-cgi] [tarfile]   install FCT-configuration-files"
    echo ""
    echo "                     tarfile    tarfile with FCT-configuration-files"
    echo "                                default: FCT-config.tar"
    echo "                     -cgi       install needed files with httpd-uid"
    exit 1
}
        
if [ "$1" = -h ]; then
  usage
fi

FCT_CONFIG="$1"
[ -z "$FCT_CONFIG" ] && FCT_CONFIG="FCT-config.tar"

CONFIG_FILES='etc/*.cfg etc/config/*.def etc/config/*.flt'
RULES_FILES='rules/Firewall/*.rules rules/*.rules'
SETUP_FILES='setup/Firewall/*.rules setup/*.rules'
LOG_FILES='log/*.log'

install=false
cgi=""
CWD=`pwd`
cd "$FWDIR"

case "$1" in

    -i) install=true
        shift
        if [ "$1" = "-cgi" ]; then
            cgi="-cgi"
            shift
        fi
        FCT_CONFIG="$1"
        [ -z "$FCT_CONFIG" ] && FCT_CONFIG="FCT-config.tar"
        ;;

    -cgi) echo "$0: option -cgi is only valid with option -i"
          exit 1
          ;;
     *)
        FCT_CONFIG="$1"
        [ -z "$FCT_CONFIG" ] && FCT_CONFIG="FCT-config.tar"
        ;;

esac

if [ "$install" = true ]; then
    if [ -r "$FCT_CONFIG" ]; then
	# bakup files: General.rules, Firewall.rules
        cp rules/General.rules rules/General.rules.bak
        cp rules/Firewall.rules rules/Firewall.rules.bak

        for f in $CONFIG_FILES $RULES_FILES $SETUP_FILES $LOG_FILES; do
            [ -e "$f" ] && rm -rf $f
        done
        tar xf "$FCT_CONFIG"

	# bakup files: General.rules, Firewall.rules
        cp rules/General.rules rules/General.rules.old
        cp rules/Firewall.rules rules/Firewall.rules.old

	# restore files: General.rules, Firewall.rules
        cp rules/General.rules.bak rules/General.rules
        cp rules/Firewall.rules.bak rules/Firewall.rules

        ./Install.sh $cgi `whoami`
    else
        echo "Can't read FCT-Configuration: <$FCT_CONFIG>"
    fi
else
    echo "save FCT-config-files to $FCT_CONFIG"
    tar cf "$FCT_CONFIG" $CONFIG_FILES $RULES_FILES $SETUP_FILES $LOG_FILES
fi

cd "$CWD"
