Skip to content

Commit

Permalink
gitweb: Move static files into seperate subdirectory
Browse files Browse the repository at this point in the history
Create a new subdirectory called 'static' in gitweb/, and move
all static files required by gitweb.cgi when running, which means
styles, images and Javascript code. This should make gitweb more
readable and easier to maintain.

Update t/gitweb-lib.sh to reflect this change.The install-gitweb
now also include moving of static files into 'static' subdirectory
in target directory: update Makefile, gitweb's INSTALL, README and
Makefile accordingly.

Signed-off-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Petr Baudis <pasky@ucw.cz>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Pavan Kumar Sunkara authored and Junio C Hamano committed Jun 1, 2010
1 parent d0b16c8 commit 18d0532
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 47 deletions.
18 changes: 9 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1578,32 +1578,32 @@ gitweb:
$(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) all

ifdef JSMIN
GITWEB_PROGRAMS += gitweb/gitweb.min.js
GITWEB_JS = gitweb/gitweb.min.js
GITWEB_PROGRAMS += gitweb/static/gitweb.min.js
GITWEB_JS = gitweb/static/gitweb.min.js
else
GITWEB_JS = gitweb/gitweb.js
GITWEB_JS = gitweb/static/gitweb.js
endif
ifdef CSSMIN
GITWEB_PROGRAMS += gitweb/gitweb.min.css
GITWEB_CSS = gitweb/gitweb.min.css
GITWEB_PROGRAMS += gitweb/static/gitweb.min.css
GITWEB_CSS = gitweb/static/gitweb.min.css
else
GITWEB_CSS = gitweb/gitweb.css
GITWEB_CSS = gitweb/static/gitweb.css
endif
OTHER_PROGRAMS += gitweb/gitweb.cgi $(GITWEB_PROGRAMS)
gitweb/gitweb.cgi: gitweb/gitweb.perl $(GITWEB_PROGRAMS)
$(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)

ifdef JSMIN
gitweb/gitweb.min.js: gitweb/gitweb.js
gitweb/static/gitweb.min.js: gitweb/static/gitweb.js
$(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
endif # JSMIN
ifdef CSSMIN
gitweb/gitweb.min.css: gitweb/gitweb.css
gitweb/static/gitweb.min.css: gitweb/static/gitweb.css
$(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
endif # CSSMIN


git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css gitweb/gitweb.js
git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/static/gitweb.css gitweb/static/gitweb.js
$(QUIET_GEN)$(RM) $@ $@+ && \
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
Expand Down
19 changes: 9 additions & 10 deletions gitweb/INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ GIT web Interface (gitweb) Installation
=======================================

First you have to generate gitweb.cgi from gitweb.perl using
"make gitweb", then copy appropriate files (gitweb.cgi, gitweb.js,
gitweb.css, git-logo.png and git-favicon.png) to their destination.
For example if git was (or is) installed with /usr prefix, you can do
"make gitweb", then "make install-gitweb" appropriate files
(gitweb.cgi, gitweb.js, gitweb.css, git-logo.png and git-favicon.png)
to their destination. For example if git was (or is) installed with
/usr prefix and gitwebdir is /var/www/cgi-bin, you can do

$ make prefix=/usr gitweb ;# as yourself
# make gitwebdir=/var/www/cgi-bin install-gitweb ;# as root
Expand Down Expand Up @@ -81,16 +82,14 @@ Build example
minifiers, you can do

make GITWEB_PROJECTROOT="/home/local/scm" \
GITWEB_JS="/gitweb/gitweb.js" \
GITWEB_CSS="/gitweb/gitweb.css" \
GITWEB_LOGO="/gitweb/git-logo.png" \
GITWEB_FAVICON="/gitweb/git-favicon.png" \
GITWEB_JS="gitweb/static/gitweb.js" \
GITWEB_CSS="gitweb/static/gitweb.css" \
GITWEB_LOGO="gitweb/static/git-logo.png" \
GITWEB_FAVICON="gitweb/static/git-favicon.png" \
bindir=/usr/local/bin \
gitweb

cp -fv gitweb/gitweb.{cgi,js,css} \
gitweb/git-{favicon,logo}.png \
/var/www/cgi-bin/gitweb/
make gitwebdir=/var/www/cgi-bin/gitweb install-gitweb


Gitweb config file
Expand Down
40 changes: 21 additions & 19 deletions gitweb/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ all::
# Define V=1 to have a more verbose compile.
#
# Define JSMIN to point to JavaScript minifier that functions as
# a filter to have gitweb.js minified.
# a filter to have static/gitweb.js minified.
#
# Define CSSMIN to point to a CSS minifier in order to generate a minified
# version of gitweb.css
# version of static/gitweb.css
#

prefix ?= $(HOME)
Expand All @@ -29,10 +29,10 @@ GITWEB_STRICT_EXPORT =
GITWEB_BASE_URL =
GITWEB_LIST =
GITWEB_HOMETEXT = indextext.html
GITWEB_CSS = gitweb.css
GITWEB_LOGO = git-logo.png
GITWEB_FAVICON = git-favicon.png
GITWEB_JS = gitweb.js
GITWEB_CSS = static/gitweb.css
GITWEB_LOGO = static/git-logo.png
GITWEB_FAVICON = static/git-favicon.png
GITWEB_JS = static/gitweb.js
GITWEB_SITE_HEADER =
GITWEB_SITE_FOOTER =

Expand All @@ -54,6 +54,7 @@ PERL_PATH ?= /usr/bin/perl
# Shell quote;
bindir_SQ = $(subst ','\'',$(bindir))#'
gitwebdir_SQ = $(subst ','\'',$(gitwebdir))#'
gitwebstaticdir_SQ = $(subst ','\'',$(gitwebdir)/static)#'
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))#'
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))#'
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))#'
Expand Down Expand Up @@ -88,26 +89,26 @@ all:: gitweb.cgi
GITWEB_PROGRAMS = gitweb.cgi

ifdef JSMIN
GITWEB_FILES += gitweb.min.js
GITWEB_JS = gitweb.min.js
all:: gitweb.min.js
gitweb.min.js: gitweb.js GITWEB-BUILD-OPTIONS
GITWEB_FILES += static/gitweb.min.js
GITWEB_JS = static/gitweb.min.js
all:: static/gitweb.min.js
static/gitweb.min.js: static/gitweb.js GITWEB-BUILD-OPTIONS
$(QUIET_GEN)$(JSMIN) <$< >$@
else
GITWEB_FILES += gitweb.js
GITWEB_FILES += static/gitweb.js
endif

ifdef CSSMIN
GITWEB_FILES += gitweb.min.css
GITWEB_CSS = gitweb.min.css
all:: gitweb.min.css
gitweb.min.css: gitweb.css GITWEB-BUILD-OPTIONS
GITWEB_FILES += static/gitweb.min.css
GITWEB_CSS = static/gitweb.min.css
all:: static/gitweb.min.css
static/gitweb.min.css: static/gitweb.css GITWEB-BUILD-OPTIONS
$(QUIET_GEN)$(CSSMIN) <$ >$@
else
GITWEB_FILES += gitweb.css
GITWEB_FILES += static/gitweb.css
endif

GITWEB_FILES += git-logo.png git-favicon.png
GITWEB_FILES += static/git-logo.png static/git-favicon.png

GITWEB_REPLACE = \
-e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \
Expand Down Expand Up @@ -147,12 +148,13 @@ gitweb.cgi: gitweb.perl GITWEB-BUILD-OPTIONS
install: all
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitwebdir_SQ)'
$(INSTALL) -m 755 $(GITWEB_PROGRAMS) '$(DESTDIR_SQ)$(gitwebdir_SQ)'
$(INSTALL) -m 644 $(GITWEB_FILES) '$(DESTDIR_SQ)$(gitwebdir_SQ)'
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitwebstaticdir_SQ)'
$(INSTALL) -m 644 $(GITWEB_FILES) '$(DESTDIR_SQ)$(gitwebstaticdir_SQ)'

### Cleaning rules

clean:
$(RM) gitweb.cgi gitweb.min.js gitweb.min.css GITWEB-BUILD-OPTIONS
$(RM) gitweb.cgi static/gitweb.min.js static/gitweb.min.css GITWEB-BUILD-OPTIONS

.PHONY: all clean install .FORCE-GIT-VERSION-FILE FORCE

14 changes: 8 additions & 6 deletions gitweb/README
Original file line number Diff line number Diff line change
Expand Up @@ -80,24 +80,26 @@ You can specify the following configuration variables when building GIT:
Points to the location where you put gitweb.css on your web server
(or to be more generic, the URI of gitweb stylesheet). Relative to the
base URI of gitweb. Note that you can setup multiple stylesheets from
the gitweb config file. [Default: gitweb.css (or gitweb.min.css if the
CSSMIN variable is defined / CSS minifier is used)]
the gitweb config file. [Default: static/gitweb.css (or
static/gitweb.min.css if the CSSMIN variable is defined / CSS minifier
is used)]
* GITWEB_LOGO
Points to the location where you put git-logo.png on your web server
(or to be more generic URI of logo, 72x27 size, displayed in top right
corner of each gitweb page, and used as logo for Atom feed). Relative
to base URI of gitweb. [Default: git-logo.png]
to base URI of gitweb. [Default: static/git-logo.png]
* GITWEB_FAVICON
Points to the location where you put git-favicon.png on your web server
(or to be more generic URI of favicon, assumed to be image/png type;
web browsers that support favicons (website icons) may display them
in the browser's URL bar and next to site name in bookmarks). Relative
to base URI of gitweb. [Default: git-favicon.png]
to base URI of gitweb. [Default: static/git-favicon.png]
* GITWEB_JS
Points to the localtion where you put gitweb.js on your web server
(or to be more generic URI of JavaScript code used by gitweb).
Relative to base URI of gitweb. [Default: gitweb.js (or gitweb.min.js
if JSMIN build variable is defined / JavaScript minifier is used)]
Relative to base URI of gitweb. [Default: static/gitweb.js (or
static/gitweb.min.js if JSMIN build variable is defined / JavaScript
minifier is used)]
* GITWEB_CONFIG
This Perl file will be loaded using 'do' and can be used to override any
of the options above as well as some other options -- see the "Runtime
Expand Down
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
6 changes: 3 additions & 3 deletions t/gitweb-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ our \$site_name = '[localhost]';
our \$site_header = '';
our \$site_footer = '';
our \$home_text = 'indextext.html';
our @stylesheets = ('file:///$TEST_DIRECTORY/../gitweb/gitweb.css');
our \$logo = 'file:///$TEST_DIRECTORY/../gitweb/git-logo.png';
our \$favicon = 'file:///$TEST_DIRECTORY/../gitweb/git-favicon.png';
our @stylesheets = ('file:///$TEST_DIRECTORY/../gitweb/static/gitweb.css');
our \$logo = 'file:///$TEST_DIRECTORY/../gitweb/static/git-logo.png';
our \$favicon = 'file:///$TEST_DIRECTORY/../gitweb/static/git-favicon.png';
our \$projects_list = '';
our \$export_ok = '';
our \$strict_export = '';
Expand Down

0 comments on commit 18d0532

Please sign in to comment.