From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Cc: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>,
Petr Baudis <pasky@ucw.cz>,
Christian Couder <chriscool@tuxfamily.org>
Subject: [RFC/PATCHv2] gitweb: Prepare for splitting gitweb
Date: Sun, 13 Jun 2010 00:54:33 +0200 [thread overview]
Message-ID: <20100612225047.19225.81022.stgit@localhost.localdomain> (raw)
In-Reply-To: <1276251959-7948-1-git-send-email-jnareb@gmail.com>
Prepare gitweb for having been split into modules that are to be
installed alongside gitweb in 'lib/' subdirectory, by adding
use lib __DIR__.'/lib';
to gitweb.perl (to main gitweb script), and preparing for putting
modules (relative path) in $(GITWEB_MODULES) in gitweb/Makefile.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
This one actually works: tested with gitweb caching series, with
gitweb caching support split into modules.
The generated command is not very elegant, but perhaps it doesn't
matter:
install -d -m 755 '/home/local/gitweb'
install -m 755 gitweb.cgi '/home/local/gitweb'
install -d -m 755 '/home/local/gitweb/static'
install -m 644 static/gitweb.js static/gitweb.css static/git-logo.png static/git-favicon.png '/home/local/gitweb/static'
test -d '/home/local/gitweb/lib/GitwebCache/' || install -d -m 755 '/home/local/gitweb/lib/GitwebCache/'; test -d '/home/local/gitweb/lib/GitwebCache/Capture/' || install -d -m 755 '/home/local/gitweb/lib/GitwebCache/Capture/';
install -m 644 lib/GitwebCache/CacheOutput.pm '/home/local/gitweb/lib/GitwebCache/CacheOutput.pm'; install -m 644 lib/GitwebCache/SimpleFileCache.pm '/home/local/gitweb/lib/GitwebCache/SimpleFileCache.pm'; install -m 644 lib/GitwebCache/Capture.pm '/home/local/gitweb/lib/GitwebCache/Capture.pm'; install -m 644 lib/GitwebCache/Capture/SelectFH.pm '/home/local/gitweb/lib/GitwebCache/Capture/SelectFH.pm';
This patch is based on commit c0cb4ed (git-instaweb: Configure it to
work with new gitweb structure, 2010-05-28), which is top commit of
'ps/gitweb-soc' branch merged into next on 2010-06-03 (as commit
5db4adf).
gitweb/Makefile | 3 +++
gitweb/gitweb.perl | 9 +++++++++
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/gitweb/Makefile b/gitweb/Makefile
index d2584fe..d2401e1 100644
--- a/gitweb/Makefile
+++ b/gitweb/Makefile
@@ -55,6 +55,7 @@ PERL_PATH ?= /usr/bin/perl
bindir_SQ = $(subst ','\'',$(bindir))#'
gitwebdir_SQ = $(subst ','\'',$(gitwebdir))#'
gitwebstaticdir_SQ = $(subst ','\'',$(gitwebdir)/static)#'
+gitweblibdir_SQ = $(subst ','\'',$(gitwebdir)/lib)#'
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))#'
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))#'
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))#'
@@ -150,6 +151,8 @@ install: all
$(INSTALL) -m 755 $(GITWEB_PROGRAMS) '$(DESTDIR_SQ)$(gitwebdir_SQ)'
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitwebstaticdir_SQ)'
$(INSTALL) -m 644 $(GITWEB_FILES) '$(DESTDIR_SQ)$(gitwebstaticdir_SQ)'
+ $(foreach dir,$(sort $(dir $(GITWEB_MODULES))),test -d '$(DESTDIR_SQ)$(gitwebdir_SQ)/$(dir)' || $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitwebdir_SQ)/$(dir)';)
+ $(foreach mod,$(GITWEB_MODULES),$(INSTALL) -m 644 $(mod) '$(DESTDIR_SQ)$(gitwebdir_SQ)/$(mod)';)
### Cleaning rules
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index e108bbc..dd65943 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -9,6 +9,14 @@
use strict;
use warnings;
+
+use File::Spec;
+# __DIR__ is taken from Dir::Self __DIR__ fragment
+sub __DIR__ () {
+ File::Spec->rel2abs(join '', (File::Spec->splitpath(__FILE__))[0, 1]);
+}
+use lib __DIR__ . '/lib';
+
use CGI qw(:standard :escapeHTML -nosticky);
use CGI::Util qw(unescape);
use CGI::Carp qw(fatalsToBrowser set_message);
@@ -16,6 +24,7 @@ use Encode;
use Fcntl ':mode';
use File::Find qw();
use File::Basename qw(basename);
+
binmode STDOUT, ':utf8';
our $t0;
prev parent reply other threads:[~2010-06-12 22:55 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-11 10:25 [RFC/PATCH] gitweb: Prepare for splitting gitweb Jakub Narebski
2010-06-12 22:54 ` Jakub Narebski [this message]
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=20100612225047.19225.81022.stgit@localhost.localdomain \
--to=jnareb@gmail.com \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--cc=pasky@ucw.cz \
--cc=pavan.sss1991@gmail.com \
/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).