hgwebdir.cgi
67 lines
| 2.2 KiB
| text/plain
|
TextLexer
mpm@selenic.com
|
r941 | #!/usr/bin/env python | ||
# | ||||
# An example CGI script to export multiple hgweb repos, edit as necessary | ||||
Benoit Boissinot
|
r5244 | # adjust python path if not a system-wide install: | ||
#import sys | ||||
#sys.path.insert(0, "/path/to/python/lib") | ||||
Thomas Arendsen Hein
|
r5197 | # enable importing on demand to reduce startup time | ||
from mercurial import demandimport; demandimport.enable() | ||||
Maxim Dounin
|
r6080 | # Uncomment to send python tracebacks to the browser if an error occurs: | ||
#import cgitb | ||||
#cgitb.enable() | ||||
mpm@selenic.com
|
r941 | |||
Thomas Arendsen Hein
|
r3868 | # If you'd like to serve pages with UTF-8 instead of your default | ||
# locale charset, you can do so by uncommenting the following lines. | ||||
# Note that this will cause your .hgrc files to be interpreted in | ||||
# UTF-8 and all your repo files to be displayed using UTF-8. | ||||
# | ||||
#import os | ||||
#os.environ["HGENCODING"] = "UTF-8" | ||||
Eric Hopper
|
r2506 | from mercurial.hgweb.hgwebdir_mod import hgwebdir | ||
import mercurial.hgweb.wsgicgi as wsgicgi | ||||
mpm@selenic.com
|
r941 | |||
Vadim Gelfer
|
r1829 | # The config file looks like this. You can have paths to individual | ||
# repos, collections of repos in a directory tree, or both. | ||||
# | ||||
mpm@selenic.com
|
r941 | # [paths] | ||
Patrick Mezard
|
r7450 | # virtual/path1 = /real/path1 | ||
# virtual/path2 = /real/path2 | ||||
# virtual/root = /real/root/* | ||||
# / = /real/root2/* | ||||
Benoit Allard
|
r7523 | # virtual/root2 = /real/root2/** | ||
Vadim Gelfer
|
r1829 | # | ||
# [collections] | ||||
# /prefix/to/strip/off = /root/of/tree/full/of/repos | ||||
# | ||||
Patrick Mezard
|
r7450 | # paths example: | ||
# | ||||
# * First two lines mount one repository into one virtual path, like | ||||
# '/real/path1' into 'virtual/path1'. | ||||
# | ||||
Benoit Allard
|
r7523 | # * The third entry mounts every mercurial repository found in '/real/root' | ||
# in 'virtual/root'. This format is preferred over the [collections] one, | ||||
Benoit Allard
|
r7526 | # since using absolute paths as configuration keys is not supported on every | ||
Benoit Allard
|
r7523 | # platform (especially on Windows). | ||
Patrick Mezard
|
r7450 | # | ||
Benoit Allard
|
r7523 | # * The fourth entry is a special case mounting all repositories in | ||
Patrick Mezard
|
r7450 | # /'real/root2' in the root of the virtual directory. | ||
# | ||||
Benoit Allard
|
r7523 | # * The fifth entry recursively finds all repositories under the real root, | ||
# and mounts them using their relative path (to given real root) under the | ||||
# virtual root. | ||||
# | ||||
Vadim Gelfer
|
r1829 | # 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. | ||||
Thomas Arendsen Hein
|
r3868 | # | ||
Thomas Arendsen Hein
|
r1144 | # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples | ||
# or use a dictionary with entries like 'virtual/path': '/real/path' | ||||
Thomas Arendsen Hein
|
r6141 | application = hgwebdir('hgweb.config') | ||
wsgicgi.launch(application) | ||||