From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Cc: Jakub Narebski <jnareb@gmail.com>, Petr Baudis <pasky@suse.cz>
Subject: [PATCH/RFC v2] gitweb: Separate %global_features
Date: Sun, 12 Oct 2008 23:00:25 +0200 [thread overview]
Message-ID: <20081012205925.29606.36935.stgit@localhost.localdomain> (raw)
In-Reply-To: <20081012130157.26825.67398.stgit@localhost.localdomain>
Put features for which project specific override is not supported into
separate %global_feature hash, updating gitweb_check_feature()
subroutine to use it. For backward compatibility with existing gitweb
configuration setups $feature{<feature>}{'default'} has preference
over $global_feature{<feature>}.
While at it remove stale comment for 'pathinfo' feature; requiring to
use workaround specified was fixed in b65910f (gitweb: remove
PATH_INFO from $my_url and $my_uri).
FIX IT: some spurious "HASH.." is printed to STDERR.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
This should be backward compatibile...
gitweb/gitweb.perl | 66 ++++++++++++++++++++++++++--------------------------
1 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index cc6edbe..88bedec 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -215,13 +215,6 @@ our %feature = (
'override' => 0,
'default' => ['tgz']},
- # Enable text search, which will list the commits which match author,
- # committer or commit text to a given string. Enabled by default.
- # Project specific override is not supported.
- 'search' => {
- 'override' => 0,
- 'default' => [1]},
-
# Enable grep search, which will list the files in currently selected
# tree containing the given string. Enabled by default. This can be
# potentially CPU-intensive, of course.
@@ -248,6 +241,20 @@ our %feature = (
'sub' => \&feature_pickaxe,
'override' => 0,
'default' => [1]},
+);
+
+our %global_feature = (
+ # feature => [ default options...] (array reference)
+ #
+ # For those features project specific override is not supported.
+ # Note that for backwards compatibility of existing gitweb
+ # configurations $feature{<feature>}{'default'} has preference.
+
+ # use gitweb_check_feature(<feature>) to check if <feature> is enabled
+
+ # Enable text search, which will list the commits which match author,
+ # committer or commit text to a given string. Enabled by default.
+ 'search' => [1],
# Make gitweb use an alternative format of the URLs which can be
# more readable and natural-looking: project name is embedded
@@ -257,16 +264,8 @@ our %feature = (
# generates links.
# To enable system wide have in $GITWEB_CONFIG
- # $feature{'pathinfo'}{'default'} = [1];
- # Project specific override is not supported.
-
- # Note that you will need to change the default location of CSS,
- # favicon, logo and possibly other files to an absolute URL. Also,
- # if gitweb.cgi serves as your indexfile, you will need to force
- # $my_uri to contain the script name in your $GITWEB_CONFIG.
- 'pathinfo' => {
- 'override' => 0,
- 'default' => [0]},
+ # $global_feature{'pathinfo'} = [1];
+ 'pathinfo' => [0],
# Make gitweb consider projects in project root subdirectories
# to be forks of existing projects. Given project $projname.git,
@@ -277,11 +276,8 @@ our %feature = (
# to be listed after the main project.
# To enable system wide have in $GITWEB_CONFIG
- # $feature{'forks'}{'default'} = [1];
- # Project specific override is not supported.
- 'forks' => {
- 'override' => 0,
- 'default' => [0]},
+ # $global_feature{'forks'} = [1];
+ 'forks' => [0],
# Insert custom links to the action bar of all project pages.
# This enables you mainly to link to third-party scripts integrating
@@ -296,12 +292,9 @@ our %feature = (
# hash base (hb gitweb parameter); %% expands to %.
# To enable system wide have in $GITWEB_CONFIG e.g.
- # $feature{'actions'}{'default'} = [('graphiclog',
+ # $global_feature{'actions'} = [('graphiclog',
# '/git-browser/by-commit.html?r=%n', 'summary')];
- # Project specific override is not supported.
- 'actions' => {
- 'override' => 0,
- 'default' => []},
+ 'actions' => [],
# Allow gitweb scan project content tags described in ctags/
# of project repository, and display the popular Web 2.0-ish
@@ -315,16 +308,23 @@ our %feature = (
# a pretty tag cloud instead of just a list of tags.
# To enable system wide have in $GITWEB_CONFIG
- # $feature{'ctags'}{'default'} = ['path_to_tag_script'];
+ # $global_feature{'ctags'} = ['path_to_tag_script'];
# Project specific override is not supported.
- 'ctags' => {
- 'override' => 0,
- 'default' => [0]},
+ 'ctags' => [0],
);
sub gitweb_check_feature {
- my ($name) = @_;
- return unless exists $feature{$name};
+ my $name = shift;
+
+ # %feature has precedence over %global_feature for backward
+ # compatibility with pre-existing gitweb configuration setups
+ unless (exists $feature{$name}) {
+ if (exists $global_feature{$name}) {
+ return @{$global_feature{$name}};
+ }
+ return;
+ }
+
my ($sub, $override, @defaults) = (
$feature{$name}{'sub'},
$feature{$name}{'override'},
prev parent reply other threads:[~2008-10-12 21:02 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-12 13:05 [PATCH/RFC] gitweb: Separate features with no project specific override Jakub Narebski
2008-10-12 21:00 ` Jakub Narebski [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081012205925.29606.36935.stgit@localhost.localdomain \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=pasky@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox