#!/bin/sh
# $Id: create_rules,v 1.1.5.1 2000/07/16 12:00:02 root Exp root $
# $Date: 2000/07/16 12:00:02 $
#
# File: create_rules
# Desc: Update all rules-files
# 
# Author : Jens Friedrich
# 
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2, or (at your option)
#   any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
# (c) Copyright 1998 Jens Friedrich
#
# $Log: create_rules,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.2  1998/06/14 10:51:55  jens
# inserted Trusted service
#
# Revision 1.0.9.1  1998/06/01 19:35:24  jens
# initial ci -r 1.0.9
#
# Revision 1.0  1998/06/01 19:32:58  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 all | Firewall | <service>"
    echo "all         create all files in $FWDIR/rules"
    echo "Firewall    create all files in $FWDIR/rules/Firewall"
    echo "<service>   create rules file in $FWDIR/rules/<service>.rules"
    exit 1
}
        
testing=false
verbose=false
setup=false

if [ "$#" -eq 0 ]; then
    for file in $FWDIR/rules/[a-z]*.rules; do
        rule=`basename $file | sed -e 's/\.rules//'`
        echo "update $rule.rules"
        $FWDIR/cgi-bin/create_service_rules.cgi $rule > /dev/null
    done
    echo "update Firewall-rules..."
    $FWDIR/cgi-bin/create_fw_rules.cgi > /dev/null
fi

while [ $# -gt 0 ]; do
  case "$1" in

      -h) usage;;

      all)
          for file in $FWDIR/rules/[a-z]*.rules; do
              rule=`basename $file | sed -e 's/\.rules//'`
              [ `echo "$rule" | egrep '^[a-z]'` ] || continue
              echo "update $rule.rules"
              $FWDIR/cgi-bin/create_service_rules.cgi $rule > /dev/null
          done
          echo "update Trusted-rules..."
          $FWDIR/cgi-bin/create_trusted_rules.cgi > /dev/null
          echo "update Firewall-rules..."
          $FWDIR/cgi-bin/create_fw_rules.cgi > /dev/null
          ;;

      Trusted)
          echo "update Trusted-rules..."
          $FWDIR/cgi-bin/create_trusted_rules.cgi > /dev/null
          ;;

      *)
          fw_svc="./"
          [ `echo "$1" | grep -i -c Firewall` -gt 0 ] && fw_svc="Firewall"
          if [ "$fw_svc" = Firewall ]; then
              echo "update Firewall-rules..."
              $FWDIR/cgi-bin/create_fw_rules.cgi > /dev/null
          else
              rule=`echo $1 | sed 's/^.*\///'`
              rule=`echo $rule | sed 's/\.rules$//'`
              $FWDIR/cgi-bin/create_service_rules.cgi $rule > /dev/null
          fi
          ;;

  esac
  shift
done
