[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"; }