annotate hgwebdir.cgi @ 941:4cf418c2a013

Add a multi-repository server This merges a bunch of the ideas for a multi-repository CGI script and simplifies things a bit. It uses PATH_INFO so it generally wants paths of the form: http://host/hg.cgi/virtualpath This gets mapped via a simple config file to the real path. All info about the repo is read from the repo's hgrc.
author mpm@selenic.com
date Fri, 19 Aug 2005 16:38:25 -0800
parents
children 8d791bea49d4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
941
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
1 #!/usr/bin/env python
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
2 #
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
3 # An example CGI script to export multiple hgweb repos, edit as necessary
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
4
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
5 import cgi, cgitb, os, sys, ConfigParser
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
6 cgitb.enable()
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
7
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
8 # sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
9 from mercurial import hgweb
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
10
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
11 # The config file looks like this:
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
12 # [paths]
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
13 # virtual/path = /real/path
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
14 # virtual/path = /real/path
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
15
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
16 h = hgweb.hgwebdir("hgweb.config")
4cf418c2a013 Add a multi-repository server
mpm@selenic.com
parents:
diff changeset
17 h.run()