git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
To: Jakub Narebski <jnareb@gmail.com>
Cc: Git List <git@vger.kernel.org>, Petr Baudis <pasky@ucw.cz>,
	Christian Couder <chriscool@tuxfamily.org>
Subject: Re: [PATCHv3 GSoC] gitweb: Move static files into seperate subdirectory
Date: Wed, 12 May 2010 13:22:15 +0530	[thread overview]
Message-ID: <4BEA5E2F.9070608@gmail.com> (raw)
In-Reply-To: <201005120127.55971.jnareb@gmail.com>

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>
---

This patch is rewritten based on 'jn/gitweb-install' as per the 
suggestion of Jakub Nareski

  Makefile                            |   20 ++++++++--------
  gitweb/INSTALL                      |   19 +++++++--------
  gitweb/Makefile                     |   41 
++++++++++++++++++----------------
  gitweb/README                       |   14 ++++++-----
  gitweb/{ => static}/git-favicon.png |  Bin 115 -> 115 bytes
  gitweb/{ => static}/git-logo.png    |  Bin 207 -> 207 bytes
  gitweb/{ => static}/gitweb.css      |    0
  gitweb/{ => static}/gitweb.js       |    0
  t/gitweb-lib.sh                     |    6 ++--
  9 files changed, 52 insertions(+), 48 deletions(-)
  rename gitweb/{ => static}/git-favicon.png (100%)
  rename gitweb/{ => static}/git-logo.png (100%)
  rename gitweb/{ => static}/gitweb.css (100%)
  rename gitweb/{ => static}/gitweb.js (100%)

diff --git a/Makefile b/Makefile
index dab5a14..de7f680 100644
--- a/Makefile
+++ b/Makefile
@@ -1561,32 +1561,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' \
@@ -2101,7 +2101,7 @@ clean:
      $(RM) $(htmldocs).tar.gz $(manpages).tar.gz
      $(MAKE) -C Documentation/ clean
  ifndef NO_PERL
-    $(RM) gitweb/gitweb.cgi gitweb/gitweb.min.*
+    $(RM) gitweb/gitweb.cgi gitweb/static/gitweb.min.*
      $(MAKE) -C perl clean
  endif
  ifndef NO_PYTHON
diff --git a/gitweb/INSTALL b/gitweb/INSTALL
index d484d76..8230531 100644
--- a/gitweb/INSTALL
+++ b/gitweb/INSTALL
@@ -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
@@ -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
diff --git a/gitweb/Makefile b/gitweb/Makefile
index 935d2d2..3af71f7 100644
--- a/gitweb/Makefile
+++ b/gitweb/Makefile
@@ -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)
@@ -16,6 +16,7 @@ gitwebdir ?= /var/www/cgi-bin

  RM ?= rm -f
  INSTALL ?= install
+MKDIR ?= mkdir

  # default configuration for gitweb
  GITWEB_CONFIG = gitweb_config.perl
@@ -29,10 +30,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 =

@@ -54,6 +55,7 @@ PERL_PATH  ?= /usr/bin/perl
  # Shell quote;
  bindir_SQ = $(subst ','\'',$(bindir))#'
  gitwebdir_SQ = $(subst ','\'',$(gitwebdir))#'
+gitwebfile_SQ = $(subst ','\'',$(gitwebdir)/static)#'
  SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))#'
  PERL_PATH_SQ  = $(subst ','\'',$(PERL_PATH))#'
  DESTDIR_SQ    = $(subst ','\'',$(DESTDIR))#'
@@ -88,26 +90,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' \
@@ -147,12 +149,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)'
+    $(MKDIR) -p '$(DESTDIR_SQ)$(gitwebfile_SQ)'
+    $(INSTALL) -m 644 $(GITWEB_FILES) '$(DESTDIR_SQ)$(gitwebfile_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

diff --git a/gitweb/README b/gitweb/README
index 71742b3..5787260 100644
--- a/gitweb/README
+++ b/gitweb/README
@@ -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
diff --git a/gitweb/gitweb.css b/gitweb/static/gitweb.css
similarity index 100%
rename from gitweb/gitweb.css
rename to gitweb/static/gitweb.css
diff --git a/gitweb/gitweb.js b/gitweb/static/gitweb.js
similarity index 100%
rename from gitweb/gitweb.js
rename to gitweb/static/gitweb.js
diff --git a/t/gitweb-lib.sh b/t/gitweb-lib.sh
index 5a734b1..b70b891 100644
--- a/t/gitweb-lib.sh
+++ b/t/gitweb-lib.sh
@@ -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 = '';
-- 
1.7.1.13.g35592.dirty

  parent reply	other threads:[~2010-05-12  7:52 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-09 13:56 [Patch 001/GSoC] Move static files into subdir Pavan Kumar Sunkara
2010-05-09 17:10 ` Christian Couder
2010-05-09 17:48   ` Pavan Kumar Sunkara
2010-05-09 22:13 ` Jakub Narebski
2010-05-10 11:44   ` Pavan Kumar Sunkara
2010-05-10 11:53     ` Ramkumar Ramachandra
2010-05-10 12:55     ` [PATCHv2 GSoC] gitweb: Move static files into seperate subdirectory Jakub Narebski
2010-05-10 13:01       ` Pavan Kumar Sunkara
2010-05-11 23:27         ` Jakub Narebski
2010-05-12  5:15           ` Pavan Kumar Sunkara
2010-05-12  7:52           ` Pavan Kumar Sunkara [this message]
2010-05-13  8:54             ` [PATCHv3 " Christian Couder
2010-05-13  9:01               ` Pavan Kumar Sunkara
2010-05-14 16:15                 ` Pavan Kumar Sunkara
2010-05-14 21:25                   ` Jakub Narebski
2010-05-15  8:47                     ` Pavan Kumar Sunkara
2010-05-18  0:06                       ` Jakub Narebski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BEA5E2F.9070608@gmail.com \
    --to=pavan.sss1991@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    --cc=pasky@ucw.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).