#!/bin/bash
# $Header: /cvs/WebShield/wsrc/files/mgmt/systemservices.d/00_config,v 1.7 2004/07/02 17:19:54 scrowe Exp $
#
# Copyright (C) 2004 Networks Associates Technology Inc. All Rights Reserved
#
#
if [ -f $NETAWSS/.profile.vars ]; then 
 . $NETAWSS/.profile.vars 
else 
 . /var/NAIENV/.profile.vars 
fi 
PATH=$wsPATH:$PATH
shopt -s extglob
shopt -s nullglob


protodir=$NETAWSS/proto/xmlconfdir

# we don't want stdin
exec </dev/null


# load in the system info functions
. sysinfo-functions

make_ui_readable()
{
    chown root:apache $1
    chmod ug+w $1
}
copy_file_into_place()
{
    cp -a $1 $2
    make_ui_readable ${2}
}
umask 2

# make XML config directory if it's not there already
[[ -d $XMLCONFDIR ]] || mkdir -p $XMLCONFDIR
make_ui_readable ${XMLCONFDIR}

# copy/link in any other missing files to the config directory
for f in $(find $protodir/!(*.cnf|cnf) ); do
    # copy prototype file
    v=${f#"$protodir"/}
    if [[ -d $f ]]; then
	[[ ! -d $XMLCONFDIR/$v ]] &&
	    mkdir -p $XMLCONFDIR/$v &&
	    chown root:apache $XMLCONFDIR/$v
    elif [[ $v == *.dtd ]]; then
	[[ ! $XMLCONFDIR/$v -ef $f ]] &&
	    rm -rf $XMLCONFDIR/$v &&
	    ln -s $f $XMLCONFDIR
    elif [[ ! -e $XMLCONFDIR/$v ]]; then
        copy_file_into_place ${f} ${XMLCONFDIR}/${v}
    fi
done

# make eservices subdirectory and rules_info files
esd=$XMLCONFDIR/eservices
rform='<?xml version="1.0" encoding="UTF-8"?>
<EngineSet timeUTC="%Y-%m-%d %H:%M:%S"/>'
[[ -d $esd ]] || mkdir -p $esd 
make_ui_readable $esd
for d in $NETAWSS/ui/menu/*/; do
    d=${d%/} d=$esd/${d##*/}
    [[ -s $d/rules_info.xml ]] && continue
    mkdir -p $d
    make_ui_readable $d
    date -u +"$rform" >$d/rules_info.xml
    make_ui_readable $d/rules_info.xml
done

# make /var/dev for jails
[[ -d /var/dev ]] || mkdir /var/dev
[[ -e /var/dev/null ]] || mknod /var/dev/null c 1 3

exit 0
