#!/usr/bin/perl -w

#----------------------------------------------------------------------
# copyright (C) 1999-2001 e-smith, inc.
#
# 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 of the License, 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.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
#
# Technical support for this program is available from e-smith, inc.
# Please visit our web site www.e-smith.net for details.
#----------------------------------------------------------------------

package esmith;

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

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

my %hosts;
tie %hosts, 'esmith::config', '/home/e-smith/hosts';

#------------------------------------------------------------
# Populate the hosts database with default entries for a given
# domain if they they don't already exist
#------------------------------------------------------------
my $event = $ARGV [0];
my $domain = $ARGV [1];
my $visibility = $ARGV [2] || 'Local';

my @hosts = qw ( ftp mail www proxy wpad );

foreach my $host ( @hosts )
{
    my $FQDN = join ".", $host, $domain;

    next unless defined $FQDN;
    next if (defined db_get(\%hosts, $FQDN));

    db_set (\%hosts, $FQDN, 'host',
	{
	    HostType => 'Self',
	    Visibility => $visibility,
	    InternalIP => '',
	    ExternalIP => '',
	    MACAddress => ''
	} );
}

#------------------------------------------------------------
# Create a default host for the SystemName which includes
# a property static=yes (meaning not editable from the interface)
#------------------------------------------------------------

if (defined db_get(\%conf, 'SystemName'))
{
    my $systemName = db_get (\%conf, 'SystemName');

    my $FQDN = join ".", $systemName, $domain;

    unless (defined db_get (\%hosts, $FQDN))
    {
	db_set (\%hosts, $FQDN, 'host',
	    {
		HostType => 'Self',
		Visibility => $visibility,
		static => 'yes',
		InternalIP => '',
		ExternalIP => '',
		MACAddress => ''
	    } );
    }
}

exit (0);
