From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Cc: Drew Northup <drew.northup@maine.edu>,
"John 'Warthog9' Hawley" <warthog9@kernel.org>,
Petr Baudis <pasky@suse.cz>
Subject: [PATCH] gitweb: Use GITWEB_CONFIG_SYSTEM even if GITWEB_CONFIG does exist
Date: Sat, 14 May 2011 21:37:15 +0200 [thread overview]
Message-ID: <201105142137.16541.jnareb@gmail.com> (raw)
gitweb obtains configuration from the following sources:
1. per-instance configuration file (default: gitweb_conf.perl)
2. system-wide configuration file (default: /etc/gitweb.conf)
If per-instance configuration file exists, then system-wide
configuration was _not used at all_. This is quite untypical and
suprising behavior.
This commit changes gitweb behavior so that configuration in
per-instance configuration file can _override_ settings from
system-wide configuration file.
Suggested-by: Drew Northup <drew.northup@maine.edu>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
This is the response to discussion in the
[PATCH/WIP] Starting work on a man page for /etc/gitweb.conf
http://thread.gmane.org/gmane.comp.version-control.git/173422
The patch to gitweb.perl itself (without the commit message) was send
as part of
http://thread.gmane.org/gmane.comp.version-control.git/173422/focus=173489
(embedded in body of email).
Note that changes to gitweb/README and gitweb/INSTALL were
minimalized, so the final result might not be the best... but I think
it is good enough.
gitweb/INSTALL | 8 +++++---
gitweb/README | 2 +-
gitweb/gitweb.perl | 7 ++++---
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/gitweb/INSTALL b/gitweb/INSTALL
index 4964a67..0584919 100644
--- a/gitweb/INSTALL
+++ b/gitweb/INSTALL
@@ -98,15 +98,17 @@ Gitweb config file
See also "Runtime gitweb configuration" section in README file
for gitweb (in gitweb/README).
-- You can configure gitweb further using the gitweb configuration file;
+- You can configure gitweb further using the per-instance gitweb configuration file;
by default this is a file named gitweb_config.perl in the same place as
gitweb.cgi script. You can control the default place for the config file
using the GITWEB_CONFIG build configuration variable, and you can set it
- using the GITWEB_CONFIG environment variable. If this file does not
- exist, gitweb looks for a system-wide configuration file, normally
+ using the GITWEB_CONFIG environment variable.
+ gitweb also looks for a system-wide configuration file, normally
/etc/gitweb.conf. You can change the default using the
GITWEB_CONFIG_SYSTEM build configuration variable, and override it
through the GITWEB_CONFIG_SYSTEM environment variable.
+ Settings from per-instance configuration file override those from
+ system-wide configuration file.
- The gitweb config file is a fragment of perl code. You can set variables
using "our $variable = value"; text from "#" character until the end
diff --git a/gitweb/README b/gitweb/README
index a92bde7..334f13e 100644
--- a/gitweb/README
+++ b/gitweb/README
@@ -126,7 +126,7 @@ Runtime gitweb configuration
You can adjust gitweb behaviour using the file specified in `GITWEB_CONFIG`
(defaults to 'gitweb_config.perl' in the same directory as the CGI), and
-as a fallback `GITWEB_CONFIG_SYSTEM` (defaults to /etc/gitweb.conf).
+`GITWEB_CONFIG_SYSTEM` (defaults to /etc/gitweb.conf), in that order.
The most notable thing that is not configurable at compile time are the
optional features, stored in the '%features' variable.
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index acdc5b8..9527cd2 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -637,12 +637,13 @@ sub evaluate_gitweb_config {
our $GITWEB_CONFIG = $ENV{'GITWEB_CONFIG'} || "++GITWEB_CONFIG++";
our $GITWEB_CONFIG_SYSTEM = $ENV{'GITWEB_CONFIG_SYSTEM'} || "++GITWEB_CONFIG_SYSTEM++";
# die if there are errors parsing config file
+ if (-e $GITWEB_CONFIG_SYSTEM) {
+ do $GITWEB_CONFIG_SYSTEM;
+ die $@ if $@;
+ }
if (-e $GITWEB_CONFIG) {
do $GITWEB_CONFIG;
die $@ if $@;
- } elsif (-e $GITWEB_CONFIG_SYSTEM) {
- do $GITWEB_CONFIG_SYSTEM;
- die $@ if $@;
}
}
--
1.7.5
next reply other threads:[~2011-05-14 19:37 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-14 19:37 Jakub Narebski [this message]
2011-05-14 21:06 ` [PATCH] gitweb: Use GITWEB_CONFIG_SYSTEM even if GITWEB_CONFIG does exist Jonathan Nieder
2011-05-15 9:53 ` Jakub Narebski
2011-05-16 9:53 ` [PATCHv2] " Jakub Narebski
2011-05-17 5:32 ` Junio C Hamano
2011-05-17 15:19 ` Drew Northup
2011-05-17 17:28 ` Junio C Hamano
2011-05-16 12:10 ` [PATCH] " Drew Northup
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=201105142137.16541.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=drew.northup@maine.edu \
--cc=git@vger.kernel.org \
--cc=pasky@suse.cz \
--cc=warthog9@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.