Bug 168191 - Checksetup needs to force template recompilation. Patch by bbaetz; r=gerv. Should fix tindebox bustage.

This commit is contained in:
gerv%gerv.net 2002-10-29 09:09:34 +00:00
Родитель c03cb01f08
Коммит bbfc878c55
2 изменённых файлов: 21 добавлений и 35 удалений

Просмотреть файл

@ -920,8 +920,6 @@ END
# YYYY-MM-DD # YYYY-MM-DD
my $lastTemplateParamChange = str2time("2002-04-27", "UTC"); my $lastTemplateParamChange = str2time("2002-04-27", "UTC");
if (-e 'data/template') { if (-e 'data/template') {
unless (-d 'data/template' && -e 'data/template/.lastRebuild' &&
(stat('data/template/.lastRebuild'))[9] >= $lastTemplateParamChange) {
print "Removing existing compiled templates ...\n"; print "Removing existing compiled templates ...\n";
# If File::Path::rmtree reported errors, then I'd use that # If File::Path::rmtree reported errors, then I'd use that
@ -936,18 +934,14 @@ END
} }
finddepth(\&remove, 'data/template'); finddepth(\&remove, 'data/template');
} }
}
# Precompile stuff. This speeds up initial access (so the template isn't # Precompile stuff. This speeds up initial access (so the template isn't
# compiled multiple times simulataneously by different servers), and helps # compiled multiple times simulataneously by different servers), and helps
# to get the permissions right. # to get the permissions right.
eval("use Template"); eval("use Template");
my $redir = ($^O =~ /MSWin32/i) ? "NUL" : "/dev/null"; my $redir = ($^O =~ /MSWin32/i) ? "NUL" : "/dev/null";
my $template = Template->new( my $provider = Template::Provider->new(
{ {
# Output to /dev/null here
OUTPUT => $redir,
# Colon-separated list of directories containing templates. # Colon-separated list of directories containing templates.
INCLUDE_PATH => "template/en/custom:template/en/default", INCLUDE_PATH => "template/en/custom:template/en/default",
@ -965,7 +959,8 @@ END
url_quote => sub { return $_; }, url_quote => sub { return $_; },
csv => sub { return $_; }, csv => sub { return $_; },
}, },
}) || die ("Could not create Template: " . Template->error() . "\n"); }) || die ("Could not create Template Provider: "
. Template::Provider->error() . "\n");
sub compile { sub compile {
# no_chdir doesn't work on perl 5.005 # no_chdir doesn't work on perl 5.005
@ -980,8 +975,9 @@ END
chdir($::baseDir); chdir($::baseDir);
$template->process($name, {}) # Do this to avoid actually processing the templates
|| die "Could not compile $name:" . $template->error() . "\n"; my ($data, $err) = $provider->fetch($name);
die "Could not compile $name: " . $data . "\n" if $err;
chdir($origDir); chdir($origDir);
} }
@ -1012,10 +1008,6 @@ END
find(\&compile, "template/en/default"); find(\&compile, "template/en/default");
} }
# update the time on the stamp file
open FILE, '>data/template/.lastRebuild'; close FILE;
utime $lastTemplateParamChange, $lastTemplateParamChange, ('data/template/.lastRebuild');
} }
# Just to be sure ... # Just to be sure ...

Просмотреть файл

@ -69,7 +69,7 @@ foreach my $file(@Support::Templates::referenced_files) {
} }
# Processes all the templates to make sure they have good syntax # Processes all the templates to make sure they have good syntax
my $template = Template->new( my $provider = Template::Provider->new(
{ {
INCLUDE_PATH => $include_path , INCLUDE_PATH => $include_path ,
# Need to define filters used in the codebase, they don't # Need to define filters used in the codebase, they don't
@ -86,29 +86,23 @@ my $template = Template->new(
} }
); );
open SAVEOUT, ">&STDOUT"; # stash the original output stream
open SAVEERR, ">&STDERR";
open STDOUT, "> /dev/null"; # discard all output
open STDERR, "> /dev/null";
foreach my $file(@Support::Templates::actual_files) { foreach my $file(@Support::Templates::actual_files) {
my $path = File::Spec->catfile($include_path, $file); my $path = File::Spec->catfile($include_path, $file);
if (-e $path) { if (-e $path) {
if ($template->process($file)) { my ($data, $err) = $provider->fetch($file);
if (!$err) {
ok(1, "$file syntax ok"); ok(1, "$file syntax ok");
} }
else { else {
ok(0, "$file has bad syntax --ERROR"); ok(0, "$file has bad syntax --ERROR");
print $fh $template->error() . "\n"; print $fh $data . "\n";
} }
} }
else { else {
ok(1, "$path doesn't exist, skipping test"); ok(1, "$path doesn't exist, skipping test");
} }
} }
open STDOUT, ">&SAVEOUT"; # redirect back to original stream
open STDERR, ">&SAVEERR";
close SAVEOUT;
close SAVEERR;
# check to see that all templates have a version string: # check to see that all templates have a version string: