bldsystemtools/commonbldutils/record_delivery.pl
author William Roberts <williamr@symbian.org>
Tue, 09 Mar 2010 17:02:36 +0000
branchRCL_3
changeset 15 abe83d2199d3
parent 0 83f4b4db085c
permissions -rw-r--r--
Update featuredatabase.xml, taking care not to include "CoverDisplay" - Bug 2049, Bug 1924, Bug 1676

#!/usr/bin/perl

=head1 NAME

Record delivery

=head1 SYNOPSIS

record_delivery.pl

=head1 DESCRIPTION

This script is designed to send an email for the purpose of recording deliveries.

=head1 COPYRIGHT

Copyright (c) 2005-2006 Symbian Ltd. All rights reserved

=cut

use strict;

use Getopt::Long;

use FindBin;  # for FindBin::Bin
use lib $FindBin::Bin; # For Local modules

use record_delivery;

my %gEntries;

my ($iConfig, $iTemplates, $iEntries) = ProcessCommandLine();

#Convert the entries to a hash
foreach my $iEntry (@$iEntries)
{
  my ($key, $value) = $iEntry =~ /(.*?)=(.*)/;
  $gEntries{$key} = $value;
}
my $delivery = record_delivery->new(config_file => $iConfig);
foreach my $iTemplate (@$iTemplates)
{
  eval {
  $delivery->send(Template => $iTemplate, %gEntries);
  };
  if ($@)
  {
    print "ERROR: Failed to record delivery using Template $iTemplate - $@\n";
  } else {
    print "Delivery Email Sent using Template $iTemplate\n";
  }
}



# ProcessCommandLine
#
# Inputs
#
# Outputs
# $ilog - logfile location
#
# Description
# This function processes the commandline

sub ProcessCommandLine {
  my ($iHelp, @iTemplates, $iConfig, @iEntries);

  GetOptions('h' => \$iHelp, 't=s' => \@iTemplates, 'c=s' => \$iConfig, 'e=s' => \@iEntries);

  if (($iHelp) || (scalar(@iTemplates) == 0) || (!defined $iConfig) || (scalar(@iEntries) == 0))
  {
    &Usage();
  } else {
    return($iConfig, \@iTemplates, \@iEntries);
  }
}

# Usage
#
# Output Usage Information.
#

sub Usage {
  print <<USAGE_EOF;

  Usage: record_delivery.pl [options]

  options:

  -h              help
  -t  [filename]  HTML::Template file to use [Multiple Allowed]
  -c  [filename]  configuration file to use
  -e  [Key=Value] Template Key and associated Value [Multiple Allowed]

  The parameters to the -e option must be provided in the form Key=Value
  e.g BuildNumber=20
  This will replace the "<TMPL_VAR NAME=BuildNumber>" text in the
  HTML::template file with the text "20".
  Keys listed on the commandline that do not exist in the template
  will generate an ERROR.
  Keys listed in the template but not provided on the command line will not
  generate an error.
  
  Example Commandline
  record_delivery.pl -t SymbianKK.tmpl -c testemail.cfg -e BuildNumber=03803_Symbian_OS_v9.2 -e PublishLocation=\\\\builds01\\devbuilds

USAGE_EOF
	exit 1;
}