Apache-Archive
view release on metacpan or search on metacpan
my $subr = $r->lookup_uri("/$filename");
my $ct = $subr->content_type;
if(! defined $ct){
$ct = 'text/plain';
}
##
# Create and send the response
##
$r->content_type($ct);
$r->status(200);
$r->send_http_header;
#$r->print("file was $file\n path was", $r->path_info);
$r->print($t->{Tar}->get_content($file));
}
sub draw_menu {
my $t = shift;
my $r = shift;
my $i = 0;
my $dataline;
$r->content_type("text/html");
$r->status(200);
$r->send_http_header;
###
## This loops through each line of the template file. When it sees
## The StartData tag it captures the $dataline out and generates
## the table. Otherwise, it just prints the line of the template file
###
while ($i < @{$t->{template}}){
if ($t->{template}->[$i] =~ /##\s*StartData/){
$i++;
while ($t->{template}->[$i] !~ /##\s*EndData/){
chomp($t->{template}->[$i]);
$dataline .= $t->{template}->[$i];
$i++;
}
&draw_data_table($t,$r,$dataline);
}
else{
if ($t->{template}->[$i] =~ /##\w+/){
$t->{template}->[$i] = do_value_subs($t,$t->{template}->[$i]);
}
$r->print($t->{template}->[$i]);
}
$i++;
}
}
##
# This takes a time in seconds (since 1970 ala unix 'time()' cmd), and an
# optional string containing comma seperated month names. It returns
# a more useful indication of time and date. If no month names are specified,
# it defaults to english three letter abbreviations.
##
sub getDatestring{
my $Seconds = shift;
my $Months = shift;
my @Months;
if ($Months){
@Months = split(/,/, $Months);
unless(@Months == 12){ ## Make sure they specified 12 months
@Months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
}
}
else{
@Months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
}
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($Seconds);
return("$mday-$Months[$mon]-$year $hour:$min");
}
sub getSizestring{
my $Bytes = shift;
my $Kb = int($Bytes/1024) || 1;
if ($Kb > 1023){
my $Mb = $Kb/1024;
## Nasty hack to round to two dp
$Mb = int($Mb*100)/100;
return("$Mb Mb");
}
else{
return("$Kb Kb");
}
}
##
# This gets the template file, or uses its internal one, if there
# is none specified.
##
sub getTemplateFile{
## TODO options to cache this file (i.e. not re-read each time).
###
my $t = shift;
if (my $file = shift){
open(IN, "$file") or die $!;
while(<IN>){
push @{$t->{template}}, $_;
}
close IN;
}
else{
@{$t->{template}} = split(/\n/, qq(<HTML>\n
<BODY BGCOLOR="#cccccc">\n
<H2>\n
<A HREF=##ArchiveLink>##ArchiveName</A>\n
</H2>\n
##ArchiveDate<BR>\n
( run in 2.050 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )