git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Frank Lichtenheld <frank@lichtenheld.de>
To: git@vger.kernel.org
Cc: Frank Lichtenheld <frank@lichtenheld.de>
Subject: [PATCH 3/5] cvsserver: Allow to override the configuration per access method
Date: Mon, 19 Mar 2007 16:55:59 +0100	[thread overview]
Message-ID: <11743197613605-git-send-email-frank@lichtenheld.de> (raw)
In-Reply-To: <11743197614111-git-send-email-frank@lichtenheld.de>

Allow to override the gitcvs.enabled and gitcvs.logfile configuration
variables for each access method (i.e. "ext" or "pserver") in the
form gitcvs.<method>.<var>

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
---
 Documentation/git-cvsserver.txt |   12 ++++++++++++
 git-cvsserver.perl              |   10 +++++++---
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/Documentation/git-cvsserver.txt b/Documentation/git-cvsserver.txt
index 85d0950..6904aad 100644
--- a/Documentation/git-cvsserver.txt
+++ b/Documentation/git-cvsserver.txt
@@ -68,6 +68,18 @@ Note: you need to ensure each user that is going to invoke git-cvsserver has
 write access to the log file and to the git repository. When offering anon
 access via pserver, this means that the nobody user should have write access
 to at least the sqlite database at the root of the repository.
+
+Both configuration variables can also be overriden for a specific method of
+access. Valid method names are "ext" (for SSH access) and "pserver". The
+following example configuration would disable pserver access while still
+allowing access over SSH.
+------
+   [gitcvs]
+        enabled=0
+
+   [gitcvs "ext"]
+        enabled=1
+------
 --
 3. On the client machine you need to set the following variables.
    CVSROOT should be set as per normal, but the directory should point at the
diff --git a/git-cvsserver.perl b/git-cvsserver.perl
index 4edb796..5d2b6f3 100755
--- a/git-cvsserver.perl
+++ b/git-cvsserver.perl
@@ -191,7 +191,10 @@ sub req_Root
         }
     }
 
-    unless ( defined ( $cfg->{gitcvs}{enabled} ) and $cfg->{gitcvs}{enabled} =~ /^\s*(1|true|yes)\s*$/i )
+    unless ( ($cfg->{gitcvs}{$state->{method}}{enabled}
+	      and $cfg->{gitcvs}{$state->{method}}{enabled} =~ /^\s*(1|true|yes)\s*$/i)
+	     or ($cfg->{gitcvs}{enabled}
+	      and $cfg->{gitcvs}{enabled} =~ /^\s*(1|true|yes)\s*$/i) )
     {
         print "E GITCVS emulation needs to be enabled on this repo\n";
         print "E the repo config file needs a [gitcvs] section added, and the parameter 'enabled' set to 1\n";
@@ -200,9 +203,10 @@ sub req_Root
         return 0;
     }
 
-    if ( defined ( $cfg->{gitcvs}{logfile} ) )
+    my $logfile = $cfg->{gitcvs}{$state->{method}}{logfile} || $cfg->{gitcvs}{logfile};
+    if ( $logfile )
     {
-        $log->setfile($cfg->{gitcvs}{logfile});
+        $log->setfile($logfile);
     } else {
         $log->nofile();
     }
-- 
1.5.0.3

  parent reply	other threads:[~2007-03-19 16:00 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-19 15:55 [PATCH/RFC] cvsserver: Make configuration way more flexible Frank Lichtenheld
2007-03-19 15:55 ` [PATCH 1/5] cvsserver: Introduce new state variable 'method' Frank Lichtenheld
2007-03-19 15:55 ` [PATCH 2/5] cvsserver: Handle three part keys in git config correctly Frank Lichtenheld
2007-03-19 15:55 ` Frank Lichtenheld [this message]
2007-03-19 15:56 ` [PATCH 4/5] cvsserver: Make the database backend configurable Frank Lichtenheld
2007-03-19 19:47   ` Martin Langhoff
2007-03-23 15:17     ` Frank Lichtenheld
2007-03-23 18:39       ` Frank Lichtenheld
2007-03-19 15:56 ` [PATCH 5/5] cvsserver: Abort if connect to database fails Frank Lichtenheld
2007-03-31 13:57 ` [PATCH] cvsserver: Use DBI->table_info instead of DBI->tables Frank Lichtenheld
2007-03-31 14:09   ` Frank Lichtenheld
2007-04-07 14:52 ` [PATCH 0/3] cvsserver: small corrections and bring documentation up to speed Frank Lichtenheld
2007-04-07 14:58   ` [PATCH 1/3] cvsserver: small corrections to asciidoc documentation Frank Lichtenheld
2007-04-07 14:58     ` [PATCH 2/3] cvsserver: Corrections to the database backend configuration Frank Lichtenheld
2007-04-07 14:58       ` [PATCH 3/3] cvsserver: Add asciidoc documentation for new " Frank Lichtenheld
2007-04-08  8:44         ` Junio C Hamano
2007-04-11 14:34           ` Frank Lichtenheld
2007-04-12 14:43           ` [PATCH (amend)] " Frank Lichtenheld
2007-04-13  0:13             ` Jakub Narebski
2007-04-13 16:13               ` [PATCH] config.txt: Add gitcvs.db* variables Frank Lichtenheld
2007-04-12 14:54           ` [PATCH] cvsserver: Document the GIT branches -> CVS modules mapping more prominently Frank Lichtenheld
2007-04-12 22:05             ` Junio C Hamano
2007-04-12 22:19               ` Frank Lichtenheld

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=11743197613605-git-send-email-frank@lichtenheld.de \
    --to=frank@lichtenheld.de \
    --cc=git@vger.kernel.org \
    /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).