[template]
url = http://www.foo.com/ # URL to fetch
AvantGo = No # apply heuristics
maxdepth = 2 # depth to traverse
bpp = 4 # pits-per-pixel
compression = zlib # or 'DOC' or 'None'
title = My Document # title of output
####
my $message = new Mail::Internet ([<>]);
my $from = $message->get('From');
my $subject = $message->get('Subject');
my $received = $message->get('Received');
my @body = @{$message->body()};
print_help_message() if ($subject =~ /help/);
my $line="";
my @unwrappeddata;
foreach (@body) {
chomp $_;
next if /^#/;
if (m/^[^\s=]+\s+=\s*/ || m/^\[.*\]$/) {
$line =~ s/^#/\n#/m;
$line .= "\n";
push @unwrappeddata, $line;
$line = $_;
} else {
$line .= $_;
}
last if /\[end_template\]/;
}
$line .= "\n";
push @unwrappeddata, $line;
####
use Digest::MD5 qw(md5 md5_hex md5_base64);
my $date = UnixDate("today","%b %e, %Y at %T");
my $md5file = md5_hex($date);
my $workpath = "/path/to/workdir";
open(INFILE, ">$workpath/$md5file.msg") or die "$?";
print INFILE @unwrappeddata;
close ('INFILE');
####
my $ConfigFile = "$workpath/$md5file.msg";
tie my %ini, 'Config::IniFiles', (-file => $ConfigFile);
my %template = %{$ini{"template"}};
$avantgo = $template{'AvantGo'};
$pl_url = $template{'url'};
$bpp = $template{'bpp'};
$maxd = $template{'maxdepth'};
$compr = $template{'compression'};
$filename = $template{'filename'};
$title = $template{'title'};
$avantgo = "No" unless $template{'AvantGo'};
####
my $buildcmd = "/path/to/foo/binary";
my @buildcmd;
push @buildcmd, "-p";
push @buildcmd, "$workpath";
push @buildcmd, "-P";
push @buildcmd, "$workpath";
push @buildcmd, "-H";
push @buildcmd, "$pl_url";
$maxd < 3 ? $maxd : $maxd=2;
push @buildcmd, "--maxdepth=$maxd";
push @buildcmd, "--bpp=$bpp" if ($bpp);
push @buildcmd, "--$compr-compression" if ($compr);
push @buildcmd, "-N";
push @buildcmd, "$title";
push @buildcmd, "-V3";
push @buildcmd, "-f";
push @buildcmd, "$workpath/$md5file";
system($buildcmd, @buildcmd);
if (stat("$workpath/$md5file.pdb")) {
my $buildfile = stat("$workpath/$md5file.pdb") or die $?;
$buildsize = $buildfile->size;
$success = 1;
} else {
print_error_message();
}
####
if ($maxd && $maxd =~ /^\d$/) {
$maxd < 3 ? $maxd : $maxd=2;
$maxd_msg = "$maxd level" . ($maxd > 1 ? "s" : "") . " down";
}