#!/usr/bin/perl -w

package esmith;

use strict;
use Errno;
use esmith::config;
use esmith::ConfigDB;
use esmith::util;

my %conf;
tie %conf, 'esmith::config';

    our $ddb = esmith::ConfigDB->open('dungog') or die "Could not open dungog DB\n";

    esmith::util::processTemplate (\%conf, "/etc/squid/squid.conf");

    system("/usr/sbin/squid -k reconfigure") == 0
      or die ("Error occurred while reconfiguring squid.\n");

    #/etc/dansguardian
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/filtergroupslist");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/bannediplist");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/exceptioniplist");

    esmith::util::processTemplate (\%conf, "/etc/dansguardian/dansguardian.conf");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/dansguardianf1.conf");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/dansguardianf2.conf");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/dansguardianf3.conf");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/dansguardianf4.conf");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/dansguardianf5.conf");

    esmith::util::processTemplate (\%conf, "/etc/dansguardian/contentscanners/clamdscan.conf");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/contentscanners/exceptionvirusextensionlist");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/contentscanners/exceptionvirusmimetypelist");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/contentscanners/exceptionvirusurllist");
    esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/contentscanners/exceptionvirussitelist");

    #get number of filtergroups to save time rebuilding lists
    #defined in expansion of filtergroupslist/30records
    my $fn  = $ddb->get_prop('dansguardian', 'fn') || '1' ;
    my @fn  = ();

    if ($fn eq '1')
    { @fn = ('f1'); }
    elsif ($fn eq '2')
    { @fn = ('f1','f2'); }
    elsif ($fn eq '3')
    { @fn = ('f1','f2','f3'); }
    elsif ($fn eq '4')
    { @fn = ('f1','f2','f3','f4'); }
    elsif ($fn eq '5')
    { @fn = ('f1','f2','f3','f4','f5'); }

    # foreach ('f1','f2','f3','f4','f5')
    foreach (@fn)
    {
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/bannedextensionlist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/bannedmimetypelist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/bannedphraselist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/bannedregexpurllist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/bannedsitelist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/bannedurllist");

      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/contentregexplist");

      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/exceptionextensionlist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/exceptionfilesitelist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/exceptionfileurllist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/exceptionmimetypelist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/exceptionphraselist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/exceptionregexpurllist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/exceptionsitelist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/exceptionurllist");

      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/greyregexpurllist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/greysitelist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/greyurllist");

      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/pics");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/urlregexplist");
      esmith::util::processTemplate (\%conf, "/etc/dansguardian/lists/$_/weightedphraselist");
    }

exit (0);
