From: Luben Tuikov <ltuikov@yahoo.com>
To: Jeff King <peff@peff.net>, Junio C Hamano <junkio@cox.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] gitweb: optionally read config from GITWEB_CONFIG
Date: Wed, 2 Aug 2006 13:51:20 -0700 (PDT) [thread overview]
Message-ID: <20060802205120.84032.qmail@web31808.mail.mud.yahoo.com> (raw)
In-Reply-To: <20060802192333.GA30861@coredump.intra.peff.net>
--- Jeff King <peff@peff.net> wrote:
> Configuration will first be taken from variables inside the gitweb.cgi
> script, which in turn come from the Makefile. Afterwards, the contents of
> GITWEB_CONFIG are read, overriding the builtin defaults.
>
> This should eliminate the need for editing the gitweb script at all. Users
> should edit the Makefile and/or add a config file.
I don't think users should even edit the Makefile. Makefiles are normally
edited when the _build_ environment differs, not when the deployment
environment differs.
For example, some of us use the same gitweb.cgi/perl/pl (or whatever the
next completely unnecessary renaming would be) for deployment on several
"sites" and repositories.
I cannot imagine anyone who actually _uses_ and maintains gitweb.cgi/perl/pl
to edit the Makefile for their deployment, thus having to have a forked off
branch(es) for each of their deployments (which the only diff editing the Makefile).
Luben
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> This is on top of next.
>
> This patch seemed to get a favorable response, so I cleaned it up and
> actually tested it. The main changes are reordering a few of the setup
> statements so that changes introduced in the config file are respected
> as suggested by Matthias (and a few by me). It would be good if other
> gitweb people could check it over and/or try it with their config to
> make sure I didn't miss anything.
>
> Makefile | 2 ++
> gitweb/gitweb.perl | 19 ++++++++++++-------
> 2 files changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 2562a2c..170d082 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -127,6 +127,7 @@ GIT_PYTHON_DIR = $(prefix)/share/git-cor
> # DESTDIR=
>
> # default configuration for gitweb
> +GITWEB_CONFIG = gitweb_config.perl
> GITWEB_SITENAME =
> GITWEB_PROJECTROOT = /pub/git
> GITWEB_LIST =
> @@ -629,6 +630,7 @@ gitweb/gitweb.cgi: gitweb/gitweb.perl
> sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
> -e 's|@@GIT_VERSION@@|$(GIT_VERSION)|g' \
> -e 's|@@GIT_BINDIR@@|$(bindir)|g' \
> + -e 's|@@GITWEB_CONFIG@@|$(GITWEB_CONFIG)|g' \
> -e 's|@@GITWEB_SITENAME@@|$(GITWEB_SITENAME)|g' \
> -e 's|@@GITWEB_PROJECTROOT@@|$(GITWEB_PROJECTROOT)|g' \
> -e 's|@@GITWEB_LIST@@|$(GITWEB_LIST)|g' \
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 1db1414..d5b2de8 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -31,14 +31,8 @@ # absolute fs-path which will be prepend
> #our $projectroot = "/pub/scm";
> our $projectroot = "@@GITWEB_PROJECTROOT@@";
>
> -# version of the core git binary
> -our $git_version = qx($GIT --version) =~ m/git version (.*)$/ ? $1 : "unknown";
> -
> # location for temporary files needed for diffs
> our $git_temp = "/tmp/gitweb";
> -if (! -d $git_temp) {
> - mkdir($git_temp, 0700) || die_error("Couldn't mkdir $git_temp");
> -}
>
> # target of the home link on top of all pages
> our $home_link = $my_uri;
> @@ -56,7 +50,7 @@ # URI of GIT logo
> our $logo = "@@GITWEB_LOGO@@";
>
> # source of projects list
> -our $projects_list = "@@GITWEB_LIST@@" || "$projectroot";
> +our $projects_list = "@@GITWEB_LIST@@";
>
> # default blob_plain mimetype and default charset for text/plain blob
> our $default_blob_plain_mimetype = 'text/plain';
> @@ -66,6 +60,17 @@ # file to use for guessing MIME types be
> # (relative to the current git repository)
> our $mimetypes_file = undef;
>
> +our $GITWEB_CONFIG = "@@GITWEB_CONFIG@@";
> +require $GITWEB_CONFIG if -e $GITWEB_CONFIG;
> +
> +# version of the core git binary
> +our $git_version = qx($GIT --version) =~ m/git version (.*)$/ ? $1 : "unknown";
> +
> +$projects_list ||= $projectroot;
> +if (! -d $git_temp) {
> + mkdir($git_temp, 0700) || die_error("Couldn't mkdir $git_temp");
> +}
> +
> # input validation and dispatch
> our $action = $cgi->param('a');
> if (defined $action) {
> --
> 1.4.2.rc2.g59706-dirty
> -
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2006-08-02 20:51 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-02 19:23 [PATCH] gitweb: optionally read config from GITWEB_CONFIG Jeff King
2006-08-02 20:17 ` [PATCH] gitweb: use single quotes for values replaced by the Makefile Matthias Lederhofer
2006-08-02 20:50 ` Junio C Hamano
2006-08-02 20:57 ` Matthias Lederhofer
2006-08-02 20:58 ` Jeff King
2006-08-02 20:21 ` [PATCH] gitweb: optionally read config from GITWEB_CONFIG Jakub Narebski
2006-08-02 20:31 ` Matthias Lederhofer
2006-08-02 20:36 ` Jakub Narebski
2006-08-02 20:41 ` Jeff King
2006-08-02 20:28 ` Junio C Hamano
2006-08-02 20:29 ` [PATCH] gitweb: require $ENV{'GITWEB_CONFIG'} Matthias Lederhofer
2006-08-02 20:50 ` Jeff King
2006-08-02 20:58 ` Junio C Hamano
2006-08-02 20:59 ` Jeff King
2006-08-02 20:51 ` Luben Tuikov [this message]
2006-08-02 20:56 ` [PATCH] gitweb: optionally read config from GITWEB_CONFIG Jeff King
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=20060802205120.84032.qmail@web31808.mail.mud.yahoo.com \
--to=ltuikov@yahoo.com \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
--cc=peff@peff.net \
/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