Merge branch 'jn/web' into next

* jn/web:
  Makefile: gitweb/gitweb.cgi is now generated.
  gitweb/README: do not bug Kay with gitweb questions anymore
  gitweb: use out-of-line GIT logo.
  gitweb: fill in gitweb configuration by Makefile
This commit is contained in:
Junio C Hamano
2006-08-01 16:23:54 -07:00
4 changed files with 61 additions and 36 deletions

View File

@@ -121,6 +121,14 @@ 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
GITWEB_LOGO = git-logo.png
export prefix bindir gitexecdir template_dir GIT_PYTHON_DIR
CC = gcc
@@ -540,7 +548,7 @@ 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: perl/Makefile
$(MAKE) -C perl
@@ -608,6 +616,21 @@ 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' \
-e 's|@@GITWEB_LOGO@@|$(GITWEB_LOGO)|g' \
$< >$@+
chmod +x $@+
mv $@+ $@
git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css
rm -f $@ $@+
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
@@ -618,7 +641,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 $@+ $@
@@ -833,6 +856,7 @@ clean:
rm -rf $(GIT_TARNAME) .doc-tmp-dir
rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
rm -f $(htmldocs).tar.gz $(manpages).tar.gz
rm -f gitweb/gitweb.cgi
$(MAKE) -C Documentation/ clean
[ ! -f perl/Makefile ] || $(MAKE) -C perl/ clean || $(MAKE) -C perl/ clean
rm -f perl/ppport.h perl/Makefile.old

View File

@@ -5,5 +5,28 @@ The one working on:
From the git version 1.4.0 gitweb is bundled with git.
Any comment/question/concern to:
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.
* GITWEB_LOGO
Points to the location where you put git-logo.png on your web server.
Originally written by:
Kay Sievers <kay.sievers@vrfy.org>
Any comment/question/concern to:
Git mailing list <git@vger.kernel.org>

BIN
gitweb/git-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

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,18 @@ 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@@";
# URI of GIT logo
our $logo = "@@GITWEB_LOGO@@";
# 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';
@@ -72,10 +73,7 @@ if (defined $action) {
undef $action;
die_error(undef, "Invalid action parameter.");
}
if ($action eq "git-logo.png") {
git_logo();
exit;
} elsif ($action eq "opml") {
if ($action eq "opml") {
git_opml();
exit;
}
@@ -874,7 +872,7 @@ $rss_link
EOF
print "<div class=\"page_header\">\n" .
"<a href=\"http://www.kernel.org/pub/software/scm/git/docs/\" title=\"git documentation\">" .
"<img src=\"$my_uri?" . esc_param("a=git-logo.png") . "\" width=\"72\" height=\"27\" alt=\"git\" style=\"float:right; border-width:0px;\"/>" .
"<img src=\"$logo\" width=\"72\" height=\"27\" alt=\"git\" style=\"float:right; border-width:0px;\"/>" .
"</a>\n";
print $cgi->a({-href => esc_param($home_link)}, "projects") . " / ";
if (defined $project) {
@@ -1268,26 +1266,6 @@ sub git_diff_print {
## ======================================================================
## actions
# git-logo (cached in browser for one day)
sub git_logo {
binmode STDOUT, ':raw';
print $cgi->header(-type => 'image/png', -expires => '+1d');
# cat git-logo.png | hexdump -e '16/1 " %02x" "\n"' | sed 's/ /\\x/g'
print "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52" .
"\x00\x00\x00\x48\x00\x00\x00\x1b\x04\x03\x00\x00\x00\x2d\xd9\xd4" .
"\x2d\x00\x00\x00\x18\x50\x4c\x54\x45\xff\xff\xff\x60\x60\x5d\xb0" .
"\xaf\xaa\x00\x80\x00\xce\xcd\xc7\xc0\x00\x00\xe8\xe8\xe6\xf7\xf7" .
"\xf6\x95\x0c\xa7\x47\x00\x00\x00\x73\x49\x44\x41\x54\x28\xcf\x63" .
"\x48\x67\x20\x04\x4a\x5c\x18\x0a\x08\x2a\x62\x53\x61\x20\x02\x08" .
"\x0d\x69\x45\xac\xa1\xa1\x01\x30\x0c\x93\x60\x36\x26\x52\x91\xb1" .
"\x01\x11\xd6\xe1\x55\x64\x6c\x6c\xcc\x6c\x6c\x0c\xa2\x0c\x70\x2a" .
"\x62\x06\x2a\xc1\x62\x1d\xb3\x01\x02\x53\xa4\x08\xe8\x00\x03\x18" .
"\x26\x56\x11\xd4\xe1\x20\x97\x1b\xe0\xb4\x0e\x35\x24\x71\x29\x82" .
"\x99\x30\xb8\x93\x0a\x11\xb9\x45\x88\xc1\x8d\xa0\xa2\x44\x21\x06" .
"\x27\x41\x82\x40\x85\xc1\x45\x89\x20\x70\x01\x00\xa4\x3d\x21\xc5" .
"\x12\x1c\x9a\xfe\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82";
}
sub git_project_list {
my $order = $cgi->param('o');
if (defined $order && $order !~ m/project|descr|owner|age/) {