summaryrefslogtreecommitdiffstats
path: root/contrib
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 /contrib
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
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/compile-templates.pl47
1 files changed, 47 insertions, 0 deletions
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");