#!/usr/bin/perl -w 
# -*- perl -*-


use strict;

package CHIRP;


my($installRoot);

BEGIN {
	$installRoot = (($0 =~ m:^(.*/):)[0] || './') . '.';
}


use Getopt::Std;

use lib "$installRoot";
use lib::CHIRP;
use lib::Lowercase;
use lib::Parse;
use lib::WriteConfig;


my($options_ref) = {};
my($hostname) = "";
my($community) = "public";
my($snmp_port) = "161";
my($idfile) = "id.cfg";
my($sitefile);
my($config);


getopts('Hh:c:p:i:s:', $options_ref);
if($options_ref->{H} || !$options_ref->{h} || $#ARGV != -1) {
	print STDERR "Usage: $0 [-H] -h hostname [-c community] [-p port] [-i file] [-s file]\n",
		"\t-H: This page\n",
		"\t-h: Hostname for SNMP query\n",
		"\t-c: Community for SNMP query\n",
		"\t-p: Port for SNMP query\n",
		"\t-i: ID config file\n",
		"\t-s: Config file with additional site specific commands\n";
	if (!$options_ref->{H}) {
		exit 1;
	}
	exit 0;
}


$hostname = $options_ref->{h};
if(defined($options_ref->{c})) {
	$community = $options_ref->{c};
}
if(defined($options_ref->{p})) {
	$snmp_port = $options_ref->{p};
}
if(defined($options_ref->{i})) {
	$idfile = $options_ref->{i};
}
if(defined($options_ref->{s})) {
	$sitefile = $options_ref->{s};
}


$config = CHIRP::CHIRP::GenConfig($hostname, $community, $snmp_port, $idfile, $sitefile);
if(!defined($config)) {
	print STDERR "ERROR: Failed to generate configuration via $community@$hostname:$snmp_port\n";
	exit 2;
}


if(CHIRP::WriteConfig::WriteConfig($config) != 0) {
	print STDERR "ERROR: Failed to write configuration\n";
	exit 2;
}

exit 0;
