gitweb: Support legacy options used by kernel.org caching engine
authorJakub Narebski <jnareb@gmail.com>
Sun, 5 Dec 2010 23:01:10 +0000 (6 00:01 +0100)
committerJakub Narebski <jnareb@gmail.com>
Sun, 5 Dec 2010 23:01:10 +0000 (6 00:01 +0100)
Try to translate between config variables used by gitweb caching
patches[1] by John 'Warthog9' Hawley (J.H.) used, among others, by
git.kernel.org, and new %cache_config options, but only if they were set
in the config file.

Note that $cache_enable is *not* translated to $caching_enabled.

Footnotes:
~~~~~~~~~~
[1] See for example "Gitweb caching v7" thread on git mailing list:
    http://thread.gmane.org/gmane.comp.version-control.git/160147

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
gitweb/gitweb.perl

index 89a3943..294fbbb 100755 (executable)
@@ -284,6 +284,9 @@ our $caching_enabled = 0;
 # Suggested mechanism:
 # mv $cachedir $cachedir.flush && mkdir $cachedir && rm -rf $cachedir.flush
 our $cache;
+
+# Legacy options configuring behavior of git.kernel.org caching
+our ($minCacheTime, $maxCacheTime, $cachedir, $backgroundCache, $maxCacheLife);
 # You define site-wide cache options defaults here; override them with
 # $GITWEB_CONFIG as necessary.
 our %cache_options = (
@@ -1363,6 +1366,19 @@ sub configure_caching {
                $cache ||= 'GitwebCache::FileCacheWithLocking';
                eval "require $cache";
                die $@ if $@;
+
+               # support for legacy config variables configuring cache behavior
+               # (those variables are/were used by caching engine by John Hawley,
+               # used among others by custom gitweb at http://git.kernel.org);
+               # it assumes that if those variables are defined, then we should
+               # use them - no provision is made for having both legacy variables
+               # and new %cache_options set in config file(s).
+               $cache_options{'cache_root'} = $cachedir if defined $cachedir;
+               $cache_options{'expires_min'} = $minCacheTime if defined $minCacheTime;
+               $cache_options{'expires_max'} = $maxCacheTime if defined $maxCacheTime;
+               $cache_options{'background_cache'} = $backgroundCache if defined $backgroundCache;
+               $cache_options{'max_lifetime'} = $maxCacheLife if defined $maxCacheLife;
+
                $cache = $cache->new({
                        %cache_options,
                        #'cache_root' => '/tmp/cache',