#
# $Id: Register,v 1.2.2 1997/09/28 19:54:22 grimaldo Rel $
#-----------------------------------------------------------------------
# AUTHOR: D. Emilio Grimaldo Tunon
# USAGE :
#	  Register [--show] [--save] [--file File] [--check] [--mail]
# DESCRIPTION
#	A Perl based registration mailer. It works regardless of the
#	location of Perl provided it is on the PATH. Uses the default
#	shell at startup.
eval 'exec perl -S $0 ${1+"$@"}'
	if 0;

use  lib '/usr/local/lib/chklogs';
use  lib '/usr/local/lib/Degt';
use  lib '/home/grimaldo/devel/Degt';
use  Smtp;
use  Config;
use  Getopt::Long;
use  strict;

my   $Product = 'Chklogs';
my   $Build   = '3';
my   $Version = '2.0';
my   $MAIL;
my   @MyHeaders = ();
my   @data = ();
my   $customer;
my   $developer;
my   $System;
my   $Host;
my   $Date;
my   $Domain;
my   $User;
my   $Perl;
my   $Ver;
my   $optMail;
my   $optShow;
my   $optSave;
my   $optUpgrade;
my   $optFile = 'register.txt';
my   $optCheck;

&GetOptions('-show'	=> \$optShow,
	    '-save'	=> \$optSave,
	    '-mail'	=> \$optMail,
	    '-upgrade'	=> \$optUpgrade,
	    '-file=s'	=> \$optFile,
	    '-check'	=> \$optCheck);

# This are so that my Procmail recipes can do some work for me
push @MyHeaders, "X-Degt-Product: $Product\n";
push @MyHeaders, "X-Degt-Version: $Version\n";
push @MyHeaders, "X-Degt-Action: register\n";
push @MyHeaders, "X-Degt-Upgrade: $optUpgrade\n";

$customer  = $ENV{'USER'} || $ENV{'LOGNAME'} || 'root';
$developer = 'grimaldo@panama.iaehv.nl';
$System = sprintf "SYSTEM : %s", `uname -a 2> /dev/null`;
$Host   = sprintf "HOST   : %s", `hostname 2> /dev/null`;
$Date   = localtime;
$Date   = sprintf "DATE   : %s\n", $Date;
$User   = sprintf "USER   : %s\n", $customer;
$Build  = sprintf "BUILD  : %s\n", $Build;
$Ver    = $Version;
$Version= sprintf "VERSION: %s\n", $Version;
$Product= sprintf "S/W ID : $Product\n";
$Perl   = sprintf "PERL   : $]\n";

&OpenSMTP(\*MAIL, 'localhost');

$customer  = $customer . '@' . &GethostSMTP;
$Domain = sprintf "DOMAIN : %s\n", &GethostSMTP;
push @data, "\t\t*** REGISTRATION ***\n";
push @data, "\t\t***     v$Ver     ***\n\n";
push @data, $System;
push @data, $Domain;
push @data, $Host;
push @data, $Date;
push @data, $Product;
push @data, $Version;
push @data, $Build;
push @data, $User;
push @data, $Perl;
push @data, "OS     : $Config{'osname'}\n";
push @data, "OSVERS : $Config{'osvers'}\n";
push @data, "ARCH   : $Config{'myarchname'}\n\n\n";

my $i;
if ($optMail) {
    if (($optCheck == 0) || ($optCheck == 1 && (! -e '.regmailed'))) {
	&Mail(\*MAIL,                           # Socket handle
	      $developer,            	    	# To:
	      $customer,                        # From:
	      'chklogs registration',           # Subject:
	      \@data,                           # Content
	      \@MyHeaders);                     # Extended headers
    }
    open(MARK,"> .regmailed");
    print MARK "Dont' remove this, I don't want multiple registrations\n";
    close(MARK);
}

if ($optSave) {
    open(OUT,"> $optFile");
    foreach $i (0..$#data) {
	print OUT $data[$i];
    }	
    close(OUT);
    chmod 0440, $optFile;
}

if ($optShow) {
    foreach $i (0..$#data) {
	print $data[$i];
    }	
}

&CloseConnection(\*MAIL);
