]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 168191 - Checksetup needs to force template recompilation. Patch by bbaetz; r...
authorgerv%gerv.net <>
Tue, 29 Oct 2002 17:09:30 +0000 (17:09 +0000)
committergerv%gerv.net <>
Tue, 29 Oct 2002 17:09:30 +0000 (17:09 +0000)
checksetup.pl
t/004template.t

index 58c2c130fefeedce893871955ed07181005d4c6f..a1662192e6b8a900388f07d97e433e1350770b0e 100755 (executable)
@@ -920,22 +920,19 @@ END
     # YYYY-MM-DD
     my $lastTemplateParamChange = str2time("2002-04-27", "UTC");
     if (-e 'data/template') {
-        unless (-d 'data/template' && -e 'data/template/.lastRebuild' &&
-                (stat('data/template/.lastRebuild'))[9] >= $lastTemplateParamChange) {
-            print "Removing existing compiled templates ...\n";
-
-            # If File::Path::rmtree reported errors, then I'd use that
-            use File::Find;
-            sub remove {
-                return if $_ eq ".";
-                if (-d $_) {
-                    rmdir $_ || die "Couldn't rmdir $_: $!\n";
-                } else {
-                    unlink $_ || die "Couldn't unlink $_: $!\n";
-                }
+        print "Removing existing compiled templates ...\n";
+
+        # If File::Path::rmtree reported errors, then I'd use that
+        use File::Find;
+        sub remove {
+            return if $_ eq ".";
+            if (-d $_) {
+                rmdir $_ || die "Couldn't rmdir $_: $!\n";
+            } else {
+                unlink $_ || die "Couldn't unlink $_: $!\n";
             }
-            finddepth(\&remove, 'data/template');
         }
+        finddepth(\&remove, 'data/template');
     }
 
     # Precompile stuff. This speeds up initial access (so the template isn't
@@ -943,11 +940,8 @@ END
     # to get the permissions right.
     eval("use Template");
     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.
         INCLUDE_PATH => "template/en/custom:template/en/default",
 
@@ -965,7 +959,8 @@ END
          url_quote => 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 {
         # no_chdir doesn't work on perl 5.005
@@ -980,8 +975,9 @@ END
 
         chdir($::baseDir);
 
-        $template->process($name, {})
-          || die "Could not compile $name:" . $template->error() . "\n";
+        # Do this to avoid actually processing the templates
+        my ($data, $err) = $provider->fetch($name);
+        die "Could not compile $name: " . $data . "\n" if $err;
 
         chdir($origDir);
     }
@@ -1012,10 +1008,6 @@ END
 
         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 ...
index 02541d351a482fc076fbdea4d5867576f3db5041..bbcb9f860ac9971bc50ca5f478527939dc3ccaee 100644 (file)
@@ -69,7 +69,7 @@ foreach my $file(@Support::Templates::referenced_files) {
 }
 
 # Processes all the templates to make sure they have good syntax
-my $template = Template->new(
+my $provider = Template::Provider->new(
 {
     INCLUDE_PATH => $include_path ,
     # 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) {
     my $path = File::Spec->catfile($include_path, $file);
     if (-e $path) {
-        if ($template->process($file)) {
+        my ($data, $err) = $provider->fetch($file);
+
+        if (!$err) {
             ok(1, "$file syntax ok");
         }
         else {
             ok(0, "$file has bad syntax --ERROR");
-            print $fh $template->error() . "\n";
+            print $fh $data . "\n";
         }
     }
     else {
         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: