git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Petr Baudis <pasky@suse.cz>
To: Johan Herland <johan@herland.net>
Cc: git@vger.kernel.org, Lars Hjemli <hjemli@gmail.com>,
	Jakub Narebski <jnareb@gmail.com>,
	Kristian H??gsberg <hoegsberg@gmail.com>
Subject: Re: CGit and repository list
Date: Sat, 13 Sep 2008 00:48:17 +0200	[thread overview]
Message-ID: <20080912224817.GF10360@machine.or.cz> (raw)
In-Reply-To: <200809121812.40920.johan@herland.net>

[-- Attachment #1: Type: text/plain, Size: 1981 bytes --]

On Fri, Sep 12, 2008 at 06:12:40PM +0200, Johan Herland wrote:
> On Friday 12 September 2008, Lars Hjemli wrote:
> > On Fri, Sep 12, 2008 at 4:58 PM, Petr Baudis <pasky@suse.cz> wrote:
> > > it seems that cgit
> > > requires all the repositories explicitly listed in the config file.
> > > Do you plan to remove this limitation in the future?
> >
> > Not really, I'd rather add another command (or a commandline option)
> > to generate an include-file for cgitrc by scanning directory-trees
> > for git repos. I've CC'd Kristian since I believe he's got such a
> > script running for freedesktop.org; if so, maybe it could be
> > included/used as basis for something similar in cgit?
> 
> Here's a script I wrote for locating repos and generating repo 
> lists/configs for cgit, gitweb and hgwebdir (yes, this handles hg repos 
> as well). It works either as a CGI script (producing a list of detected 
> repos in HTML format), or from the command-line. It's only been tested 
> on an experimental DVCS server at $dayjob, so you might have to change 
> things to make it work in your scenario.
> 
> If there is interest in this, I can create a public repo and we can keep 
> improving on it.

Thanks. The script was a bit more scary than I thought, but in the end I
managed to generate something. There are trailing dots in project names,
but I'm not going to waste time on that anymore - this has long gone
over the 20 minutes I originally alotted the project anyway; I hope cgit
will gain a builtin capability for this in the future, since this is
still quite a pain. Attached is a random patch for your script I had to
use, FWIW.

Unfortunately, the recommended RewriteRule is not working - it does not
play well together with query parameters cgit is using, so e.g. browsing
past commits does not work. What RewriteRule should I use instead?

-- 
				Petr "Pasky" Baudis
The next generation of interesting software will be done
on the Macintosh, not the IBM PC.  -- Bill Gates

[-- Attachment #2: repofinder.diff --]
[-- Type: text/plain, Size: 2107 bytes --]

--- repofinder-orig.py	2008-09-13 00:44:22.000000000 +0200
+++ repofinder.py	2008-09-13 00:44:47.000000000 +0200
@@ -244,7 +244,7 @@
 			if (self.group):
 				assert name.startswith(self.group.path)
 				name = name[len(self.group.path):]
-			name = name.strip("/")
+			name = name.strip("/srv/git/")
 			self._name = self.nameFromPath(name)
 		return self._name
 	name = property(getName)
@@ -267,7 +267,10 @@
 		"""Return a (name, email) tuple with our best guess as to who
 		   owns this repo
 		"""
-		return (self.ownerName, self.ownerEmail)
+		__o = self.ownerName
+		if (__o is None):
+			__o = ''
+		return (__o, self.ownerEmail)
 	owner = property(getOwner)
 
 	def getDescription (self):
@@ -286,14 +289,15 @@
 
 	@staticmethod
 	def nameFromPath (path):
-		if path.endswith(".git"): path = path[:-4]
+		if path.endswith(".git"): path = path[:-5]
 		path = path.rstrip("/")
 		return path
 
 	@staticmethod
 	def cloneUrlFromPath (path):
 		if path.endswith("/.git"): path = path[:-5]
-		return "ssh://%s%s" % (Settings['ServerName'], path)
+		path = path.strip("/srv/git")
+		return "git://%s/%sgit" % (Settings['ServerName'], path)
 
 	def __init__ (self, path):
 		Repo.__init__(self, path)
@@ -316,6 +320,9 @@
 	def getOwnerEmail (self):
 		if self._ownerEmail is None:
 			self._ownerEmail = self.config.get("user.email")
+		if self._ownerEmail is None:
+			try: self._ownerEmail = open(os.path.join(self.path, "owner")).read().strip()
+			except: pass
 		return Repo.getOwnerEmail(self)
 	ownerEmail = property(getOwnerEmail)
 
@@ -592,12 +599,12 @@
 		for repo in sorted(group.repos):
 			url = repo.path
 			if url.endswith("/.git"): url = url[:-5]
-			url = url.strip("/")
+			url = url.strip("/srv/git/")
 			print >>self.f, "repo.url=%s" % (url)
 			print >>self.f, "repo.path=%s" % (repo.path)
 			print >>self.f, "repo.name=%s" % (repo.name)
 			print >>self.f, "repo.desc=%s" % (repo.description)
-			print >>self.f, "repo.owner=%s <%s>" % repo.owner
+			print >>self.f, "repo.owner=%s%s" % repo.owner
 			print >>self.f, "repo.clone-url=%s" % (repo.clone)
 			print >>self.f, ""
 

  parent reply	other threads:[~2008-09-12 22:49 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-12  4:47 configuring git public repository sagi4
2008-09-12 12:33 ` Ciprian Dorin Craciun
2008-09-12 12:57   ` Jakub Narebski
2008-09-12 14:36     ` Lars Hjemli
2008-09-12 14:58       ` CGit and repository list Petr Baudis
2008-09-12 15:10         ` Lars Hjemli
     [not found]           ` <200809121812.40920.johan@herland.net>
2008-09-12 22:48             ` Petr Baudis [this message]
2008-09-12 23:20               ` Lars Hjemli
2008-09-13 19:49                 ` Petr Baudis
2008-09-13 20:02                   ` Lars Hjemli
2008-09-14  7:53                     ` [CGIT PATCH] parsing.c: handle unexpected commit/tag content Lars Hjemli
2008-09-14  8:52                       ` Lars Hjemli
2008-09-15 22:04                   ` CGit and repository list Lars Hjemli
2008-09-14 17:14               ` Kristian Høgsberg
2008-09-14 17:22                 ` Kristian Høgsberg
2008-09-14 18:01                   ` Lars Hjemli
2008-09-12 15:54         ` Jakub Narebski
2008-09-12 16:00           ` Shawn O. Pearce
2008-09-12 16:12             ` Lars Hjemli
2008-09-12 16:05           ` Petr Baudis
2008-09-12 16:08             ` Shawn O. Pearce
2008-09-12 16:20               ` Petr Baudis
2008-09-12 16:22                 ` Shawn O. Pearce
2008-09-12 17:40             ` Jakub Narebski
2008-09-12 17:45               ` Shawn O. Pearce
2008-09-12 19:13               ` Petr Baudis

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=20080912224817.GF10360@machine.or.cz \
    --to=pasky@suse.cz \
    --cc=git@vger.kernel.org \
    --cc=hjemli@gmail.com \
    --cc=hoegsberg@gmail.com \
    --cc=jnareb@gmail.com \
    --cc=johan@herland.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;
as well as URLs for NNTP newsgroup(s).