hgwebdir.cgi
author Thomas Arendsen Hein <thomas@intevation.de>
Tue, 07 Nov 2006 22:35:07 +0100
changeset 3623 44247ecc2965
parent 2506 d0db3462d568
child 3782 713e35dcc321
permissions -rw-r--r--
Fix accessing a repository via -R/--repository through a symlink. Sometimes the repository root was compared to os.getcwd(), which always uses the canonical path without symbolic links in it. This would changes self.root of the localrepo objects to always use os.sep as the directory separator, which is implicitly assumed in some places, but may not be the case if somebody uses -R foo/repo on windows.

#!/usr/bin/env python
#
# An example CGI script to export multiple hgweb repos, edit as necessary

import cgitb, sys
cgitb.enable()

# sys.path.insert(0, "/path/to/python/lib") # if not a system-wide install
from mercurial.hgweb.hgwebdir_mod import hgwebdir
from mercurial.hgweb.request import wsgiapplication
import mercurial.hgweb.wsgicgi as wsgicgi

# The config file looks like this.  You can have paths to individual
# repos, collections of repos in a directory tree, or both.
#
# [paths]
# virtual/path = /real/path
# virtual/path = /real/path
#
# [collections]
# /prefix/to/strip/off = /root/of/tree/full/of/repos
#
# collections example: say directory tree /foo contains repos /foo/bar,
# /foo/quux/baz.  Give this config section:
#   [collections]
#   /foo = /foo
# Then repos will list as bar and quux/baz.

# Alternatively you can pass a list of ('virtual/path', '/real/path') tuples
# or use a dictionary with entries like 'virtual/path': '/real/path'

def make_web_app():
    return hgwebdir("hgweb.config")

wsgicgi.launch(wsgiapplication(make_web_app))