gitweb: fill in gitweb configuration by Makefile

Generate gitweb/gitweb.cgi to reduce the need to patch gitweb.cgi
by the end user.  The GIT installation directory is already known
by the Makefile, and can be inserted directly into gitweb.
All other gitweb configuration parameters can now be specified by
providing GITWEB_* variables while building GIT.  These are described
in gitweb/README.

Signed-off-by: Martin Waitz <tali@admingilde.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Martin Waitz 2006-08-01 21:34:08 +02:00 committed by Junio C Hamano
parent 6326b60cfd
commit 5d043a3d85
3 changed files with 47 additions and 10 deletions

View File

@ -116,6 +116,13 @@ template_dir = $(prefix)/share/git-core/templates/
GIT_PYTHON_DIR = $(prefix)/share/git-core/python
# DESTDIR=
# default configuration for gitweb
GITWEB_SITENAME =
GITWEB_PROJECTROOT = /pub/git
GITWEB_LIST =
GITWEB_HOMETEXT = indextext.html
GITWEB_CSS = gitweb.css
export prefix bindir gitexecdir template_dir GIT_PYTHON_DIR
CC = gcc
@ -514,7 +521,7 @@ LIB_OBJS += $(COMPAT_OBJS)
export prefix TAR INSTALL DESTDIR SHELL_PATH template_dir
### Build rules
all: $(ALL_PROGRAMS) $(BUILT_INS) git$X gitk
all: $(ALL_PROGRAMS) $(BUILT_INS) git$X gitk gitweb/gitweb.cgi
all:
$(MAKE) -C templates
@ -572,6 +579,20 @@ git-status: git-commit
cp $< $@+
mv $@+ $@
gitweb/gitweb.cgi: gitweb/gitweb.perl
rm -f $@ $@+
sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
-e 's|@@GIT_VERSION@@|$(GIT_VERSION)|g' \
-e 's|@@GIT_BINDIR@@|$(bindir)|g' \
-e 's|@@GITWEB_SITENAME@@|$(GITWEB_SITENAME)|g' \
-e 's|@@GITWEB_PROJECTROOT@@|$(GITWEB_PROJECTROOT)|g' \
-e 's|@@GITWEB_LIST@@|$(GITWEB_LIST)|g' \
-e 's|@@GITWEB_HOMETEXT@@|$(GITWEB_HOMETEXT)|g' \
-e 's|@@GITWEB_CSS@@|$(GITWEB_CSS)|g' \
$< >$@+
chmod +x $@+
mv $@+ $@
git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css
rm -f $@ $@+
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
@ -582,7 +603,7 @@ git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css
-e '/@@GITWEB_CGI@@/d' \
-e '/@@GITWEB_CSS@@/r gitweb/gitweb.css' \
-e '/@@GITWEB_CSS@@/d' \
$@.sh | sed "s|/usr/bin/git|$(bindir)/git|" > $@+
$@.sh > $@+
chmod +x $@+
mv $@+ $@

View File

@ -5,5 +5,22 @@ The one working on:
From the git version 1.4.0 gitweb is bundled with git.
How to configure gitweb for your local system:
You can specify the following configuration variables when building GIT:
* GITWEB_SITENAME
Shown in the title of all generated pages, defaults to the servers name.
* GITWEB_PROJECTROOT
The root directory for all projects shown by gitweb.
* GITWEB_LIST
points to a directory to scan for projects (defaults to project root)
or to a file for explicit listing of projects.
* GITWEB_HOMETEXT
points to an .html file which is included on the gitweb project
overview page.
* GITWEB_CSS
Points to the location where you put gitweb.css on your web server.
Any comment/question/concern to:
Kay Sievers <kay.sievers@vrfy.org>

View File

@ -18,18 +18,18 @@ use File::Find qw();
binmode STDOUT, ':utf8';
our $cgi = new CGI;
our $version = "267";
our $version = "@@GIT_VERSION@@";
our $my_url = $cgi->url();
our $my_uri = $cgi->url(-absolute => 1);
our $rss_link = "";
# core git executable to use
# this can just be "git" if your webserver has a sensible PATH
our $GIT = "/usr/bin/git";
our $GIT = "@@GIT_BINDIR@@/git";
# absolute fs-path which will be prepended to the project path
#our $projectroot = "/pub/scm";
our $projectroot = "/home/kay/public_html/pub/scm";
our $projectroot = "@@GITWEB_PROJECTROOT@@";
# version of the core git binary
our $git_version = qx($GIT --version) =~ m/git version (.*)$/ ? $1 : "unknown";
@ -45,17 +45,16 @@ our $home_link = $my_uri;
# name of your site or organization to appear in page titles
# replace this with something more descriptive for clearer bookmarks
our $site_name = $ENV{'SERVER_NAME'} || "Untitled";
our $site_name = "@@GITWEB_SITENAME@@" || $ENV{'SERVER_NAME'} || "Untitled";
# html text to include at home page
our $home_text = "indextext.html";
our $home_text = "@@GITWEB_HOMETEXT@@";
# URI of default stylesheet
our $stylesheet = "gitweb.css";
our $stylesheet = "@@GITWEB_CSS@@";
# source of projects list
#our $projects_list = $projectroot;
our $projects_list = "index/index.aux";
our $projects_list = "@@GITWEB_LIST@@" || "$projectroot";
# default blob_plain mimetype and default charset for text/plain blob
our $default_blob_plain_mimetype = 'text/plain';