summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Lawrence <dlawrence@mozilla.com>2013-10-31 09:32:46 +0100
committerByron Jones <bjones@mozilla.com>2013-10-31 09:32:46 +0100
commit1522e48c854046b947284dbe50296cc0e159be4c (patch)
treeb88f7641b7d5e21f73e56ca07423fe646e25ff50
parent69d8d262406f29b742c61850cd1d4932909277b5 (diff)
downloadbugzilla-1522e48c854046b947284dbe50296cc0e159be4c.tar.gz
bugzilla-1522e48c854046b947284dbe50296cc0e159be4c.tar.xz
Bug 887117: Move the compiled template cache dir to a directory in the document root to avoid storing on NFS
-rw-r--r--.bzrignore19
-rw-r--r--.htaccess2
-rw-r--r--Bugzilla/Constants.pm2
-rwxr-xr-xcontrib/compile-templates.pl47
4 files changed, 51 insertions, 19 deletions
diff --git a/.bzrignore b/.bzrignore
index e009f01c8..0370a07e0 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -10,22 +10,5 @@
/data
/localconfig
/index.html
-
-/skins/contrib/Dusk/IE-fixes.css
-/skins/contrib/Dusk/admin.css
-/skins/contrib/Dusk/attachment.css
-/skins/contrib/Dusk/create_attachment.css
-/skins/contrib/Dusk/dependency-tree.css
-/skins/contrib/Dusk/duplicates.css
-/skins/contrib/Dusk/editusers.css
-/skins/contrib/Dusk/enter_bug.css
-/skins/contrib/Dusk/help.css
-/skins/contrib/Dusk/panel.css
-/skins/contrib/Dusk/page.css
-/skins/contrib/Dusk/params.css
-/skins/contrib/Dusk/reports.css
-/skins/contrib/Dusk/show_bug.css
-/skins/contrib/Dusk/search_form.css
-/skins/contrib/Dusk/show_multiple.css
-/skins/contrib/Dusk/summarize-time.css
+/template_cache
.DS_Store
diff --git a/.htaccess b/.htaccess
index 4e0a08f57..81561d566 100644
--- a/.htaccess
+++ b/.htaccess
@@ -41,6 +41,8 @@ Redirect permanent /etiquette.html https://bugzilla.mozilla.org/page.cgi?id=etiq
Redirect permanent /duplicates.html https://bugzilla.mozilla.org/duplicates.cgi
RewriteEngine On
+RewriteRule ^template_cache/ - [F,L,NC]
+RewriteRule ^template_cache.deleteme/ - [F,L,NC]
RewriteRule ^review(.*) page.cgi?id=splinter.html$1 [QSA]
RewriteRule ^user_?profile(.*) page.cgi?id=user_profile.html$1 [QSA]
RewriteRule ^request_defer(.*) page.cgi?id=request_defer.html$1 [QSA]
diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm
index d884270e3..e13a93388 100644
--- a/Bugzilla/Constants.pm
+++ b/Bugzilla/Constants.pm
@@ -650,7 +650,7 @@ sub bz_locations {
# make sure this still points to the CGIs.
'cgi_path' => $libpath,
'templatedir' => "$libpath/template",
- 'template_cache' => "$datadir/template",
+ 'template_cache' => "$libpath/template_cache",
'project' => $project,
'localconfig' => "$libpath/$localconfig",
'datadir' => $datadir,
diff --git a/contrib/compile-templates.pl b/contrib/compile-templates.pl
new file mode 100755
index 000000000..e39e0c338
--- /dev/null
+++ b/contrib/compile-templates.pl
@@ -0,0 +1,47 @@
+#!/usr/bin/perl -w
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+use strict;
+use warnings;
+use lib qw(. lib);
+
+use Bugzilla;
+use Bugzilla::Constants;
+use Bugzilla::Install::Filesystem qw(fix_dir_permissions);
+use Bugzilla::Template;
+use File::Path qw(mkpath rmtree);
+
+Bugzilla->usage_mode(USAGE_MODE_CMDLINE);
+$| = 1;
+
+# rename the current directory and create a new empty one
+# this is quicker than the method used in precompile_templates
+
+my $path = bz_locations()->{'template_cache'};
+my $delete_path = "$path.deleteme";
+
+print "Moving '$path' to '$delete_path'\n";
+rmtree("$delete_path") if -e "$delete_path";
+rename($path, $delete_path)
+ or die "renaming '$path' to '$delete_path' failed: $!\n";
+
+print "Creating '$path'\n";
+mkpath($path)
+ or die "creating '$path' failed: $!\n";
+fix_dir_permissions($path);
+
+# pre-compile all templates
+
+Bugzilla::Template::precompile_templates(1);
+fix_dir_permissions($path);
+
+# finally delete the temp directory (it's ok if this fails)
+
+print "Deleting $delete_path\n";
+rmtree("$delete_path");