Merge branch 'gp/gitweb'

* gp/gitweb:
  gitweb: fallback to system-wide config file (fixup)
  gitweb: fallback to system-wide config file if default config does not exist
maint
Junio C Hamano 2008-04-09 00:44:48 -07:00
commit 018465d998
4 changed files with 21 additions and 3 deletions

View File

@ -189,6 +189,7 @@ ETC_GITCONFIG = $(sysconfdir)/gitconfig


# default configuration for gitweb # default configuration for gitweb
GITWEB_CONFIG = gitweb_config.perl GITWEB_CONFIG = gitweb_config.perl
GITWEB_CONFIG_SYSTEM = /etc/gitweb.conf
GITWEB_HOME_LINK_STR = projects GITWEB_HOME_LINK_STR = projects
GITWEB_SITENAME = GITWEB_SITENAME =
GITWEB_PROJECTROOT = /pub/git GITWEB_PROJECTROOT = /pub/git
@ -1034,6 +1035,7 @@ gitweb/gitweb.cgi: gitweb/gitweb.perl
-e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \ -e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \
-e 's|++GIT_BINDIR++|$(bindir)|g' \ -e 's|++GIT_BINDIR++|$(bindir)|g' \
-e 's|++GITWEB_CONFIG++|$(GITWEB_CONFIG)|g' \ -e 's|++GITWEB_CONFIG++|$(GITWEB_CONFIG)|g' \
-e 's|++GITWEB_CONFIG_SYSTEM++|$(GITWEB_CONFIG_SYSTEM)|g' \
-e 's|++GITWEB_HOME_LINK_STR++|$(GITWEB_HOME_LINK_STR)|g' \ -e 's|++GITWEB_HOME_LINK_STR++|$(GITWEB_HOME_LINK_STR)|g' \
-e 's|++GITWEB_SITENAME++|$(GITWEB_SITENAME)|g' \ -e 's|++GITWEB_SITENAME++|$(GITWEB_SITENAME)|g' \
-e 's|++GITWEB_PROJECTROOT++|$(GITWEB_PROJECTROOT)|g' \ -e 's|++GITWEB_PROJECTROOT++|$(GITWEB_PROJECTROOT)|g' \

View File

@ -95,7 +95,11 @@ for gitweb (in gitweb/README).
by default it is file named gitweb_config.perl in the same place as by default it is file named gitweb_config.perl in the same place as
gitweb.cgi script. You can control default place for config file gitweb.cgi script. You can control default place for config file
using GITWEB_CONFIG build configuration variable, and you can set it using GITWEB_CONFIG build configuration variable, and you can set it
using GITWEB_CONFIG environmental variable. using GITWEB_CONFIG environmental variable. If this file does not
exist, gitweb 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 GITWEB_CONFIG_SYSTEM environmental variable.


- Gitweb config file is [fragment] of perl code. You can set variables - Gitweb config file is [fragment] of perl code. You can set variables
using "our $variable = value"; text from "#" character until the end using "our $variable = value"; text from "#" character until the end

View File

@ -100,13 +100,20 @@ You can specify the following configuration variables when building GIT:
is set when gitweb.cgi is executed, then the file specified in the is set when gitweb.cgi is executed, then the file specified in the
environment variable will be loaded instead of the file specified environment variable will be loaded instead of the file specified
when gitweb.cgi was created. [Default: gitweb_config.perl] when gitweb.cgi was created. [Default: gitweb_config.perl]
* GITWEB_CONFIG_SYSTEM
This Perl file will be loaded using 'do' as a fallback if GITWEB_CONFIG
does not exist. If the environment variable GITWEB_CONFIG_SYSTEM is set
when gitweb.cgi is executed, then the file specified in the environment
variable will be loaded instead of the file specified when gitweb.cgi was
created. [Default: /etc/gitweb.conf]




Runtime gitweb configuration Runtime gitweb configuration
---------------------------- ----------------------------


You can adjust gitweb behaviour using the file specified in `GITWEB_CONFIG` You can adjust gitweb behaviour using the file specified in `GITWEB_CONFIG`
(defaults to 'gitweb_config.perl' in the same directory as the CGI). (defaults to 'gitweb_config.perl' in the same directory as the CGI), and
as a fallback `GITWEB_CONFIG_SYSTEM` (defaults to /etc/gitweb.conf).
The most notable thing that is not configurable at compile time are the The most notable thing that is not configurable at compile time are the
optional features, stored in the '%features' variable. optional features, stored in the '%features' variable.



View File

@ -369,7 +369,12 @@ sub filter_snapshot_fmts {
} }


our $GITWEB_CONFIG = $ENV{'GITWEB_CONFIG'} || "++GITWEB_CONFIG++"; our $GITWEB_CONFIG = $ENV{'GITWEB_CONFIG'} || "++GITWEB_CONFIG++";
do $GITWEB_CONFIG if -e $GITWEB_CONFIG; if (-e $GITWEB_CONFIG) {
do $GITWEB_CONFIG;
} else {
our $GITWEB_CONFIG_SYSTEM = $ENV{'GITWEB_CONFIG_SYSTEM'} || "++GITWEB_CONFIG_SYSTEM++";
do $GITWEB_CONFIG_SYSTEM if -e $GITWEB_CONFIG_SYSTEM;
}


# version of the core git binary # version of the core git binary
our $git_version = qx($GIT --version) =~ m/git version (.*)$/ ? $1 : "unknown"; our $git_version = qx($GIT --version) =~ m/git version (.*)$/ ? $1 : "unknown";