#!/usr/bin/perl
use strict;
use warnings;
use IPC::Run qw(run);
use Time::HiRes qw( time );
chdir('%%DEST%%');
my ($buffer, @pairs, $pair, $name, $val, %FORM);
if ($ENV{'REQUEST_METHOD'} eq "GET") {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $val) = split(/=/, $pair);
$val =~ tr/+/ /;
$val =~ s/%(..)/pack("C", hex($1))/eg;
$FORM{$name} = $val;
}
my ($in, $out);
$in = "\n";
if (index($ENV{'PATH_INFO'},'award.pdf') != -1){
$in .= "\\award{$FORM{'committee'}}{$FORM{'country'}}{$FORM{'award'}}{$FORM{'school'}}";
}
elsif (index($ENV{'PATH_INFO'},'room.pdf') != -1){
$in .= "\\room{$FORM{'committee'}}";
}
else{
print "Content-type: text/html\n";
print "Status: 404 File Not Found Error\n";
print "\n";
print '404 Error. Go back.';
die;
}
$in .= "\\bye\n";
my $timestamp = time;
run ['/usr/bin/pdftex', '-jobname', "/tmp/$timestamp", 'format.tex'], '<', \$in, '>', \$out;
print "Content-type: application/pdf\n\n";
open(DOC, '<', "/tmp/$timestamp.pdf");
print ;
close(DOC);
unlink "/tmp/$timestamp.pdf", "/tmp/$timestamp.log";