Browse Source

gitweb: optionally read config from GITWEB_CONFIG

Configuration will first be taken from variables inside the gitweb.cgi
script, which in turn come from the Makefile. Afterwards, the contents of
GITWEB_CONFIG are read, overriding the builtin defaults.

This should eliminate the need for editing the gitweb script at all. Users
should edit the Makefile and/or add a config file.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Jeff King 19 years ago committed by Junio C Hamano
parent
commit
c8d138a8c0
  1. 2
      Makefile
  2. 19
      gitweb/gitweb.perl

2
Makefile

@ -117,6 +117,7 @@ GIT_PYTHON_DIR = $(prefix)/share/git-core/python @@ -117,6 +117,7 @@ GIT_PYTHON_DIR = $(prefix)/share/git-core/python
# DESTDIR=

# default configuration for gitweb
GITWEB_CONFIG = gitweb_config.perl
GITWEB_SITENAME =
GITWEB_PROJECTROOT = /pub/git
GITWEB_LIST =
@ -585,6 +586,7 @@ gitweb/gitweb.cgi: gitweb/gitweb.perl @@ -585,6 +586,7 @@ gitweb/gitweb.cgi: gitweb/gitweb.perl
sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
-e 's|@@GIT_VERSION@@|$(GIT_VERSION)|g' \
-e 's|@@GIT_BINDIR@@|$(bindir)|g' \
-e 's|@@GITWEB_CONFIG@@|$(GITWEB_CONFIG)|g' \
-e 's|@@GITWEB_SITENAME@@|$(GITWEB_SITENAME)|g' \
-e 's|@@GITWEB_PROJECTROOT@@|$(GITWEB_PROJECTROOT)|g' \
-e 's|@@GITWEB_LIST@@|$(GITWEB_LIST)|g' \

19
gitweb/gitweb.perl

@ -31,14 +31,8 @@ our $GIT = "@@GIT_BINDIR@@/git"; @@ -31,14 +31,8 @@ our $GIT = "@@GIT_BINDIR@@/git";
#our $projectroot = "/pub/scm";
our $projectroot = "@@GITWEB_PROJECTROOT@@";

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

# location for temporary files needed for diffs
our $git_temp = "/tmp/gitweb";
if (! -d $git_temp) {
mkdir($git_temp, 0700) || die_error("Couldn't mkdir $git_temp");
}

# target of the home link on top of all pages
our $home_link = $my_uri;
@ -56,7 +50,7 @@ our $stylesheet = "@@GITWEB_CSS@@"; @@ -56,7 +50,7 @@ our $stylesheet = "@@GITWEB_CSS@@";
our $logo = "@@GITWEB_LOGO@@";

# source of projects list
our $projects_list = "@@GITWEB_LIST@@" || "$projectroot";
our $projects_list = "@@GITWEB_LIST@@";

# default blob_plain mimetype and default charset for text/plain blob
our $default_blob_plain_mimetype = 'text/plain';
@ -66,6 +60,17 @@ our $default_text_plain_charset = undef; @@ -66,6 +60,17 @@ our $default_text_plain_charset = undef;
# (relative to the current git repository)
our $mimetypes_file = undef;

our $GITWEB_CONFIG = "@@GITWEB_CONFIG@@";
require $GITWEB_CONFIG if -e $GITWEB_CONFIG;

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

$projects_list ||= $projectroot;
if (! -d $git_temp) {
mkdir($git_temp, 0700) || die_error("Couldn't mkdir $git_temp");
}

# input validation and dispatch
our $action = $cgi->param('a');
if (defined $action) {

Loading…
Cancel
Save