contrib/hgwebdir.fcgi
author Bryan O'Sullivan <bos@serpentine.com>
Thu, 19 Jul 2007 15:33:21 -0700
changeset 4949 2f0f9528e77b
parent 4391 722417b3d7fa
child 5197 55860a45bbf2
permissions -rw-r--r--
convert/subversion: rehandle the no-tags case
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     1
#!/usr/bin/env python
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     2
#
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     3
# An example CGI script to export multiple hgweb repos, edit as necessary
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     4
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     5
# send python tracebacks to the browser if an error occurs:
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     6
import cgitb
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     7
cgitb.enable()
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     8
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     9
# adjust python path if not a system-wide install:
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    10
#import sys
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    11
#sys.path.insert(0, "/path/to/python/lib")
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    12
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    13
# If you'd like to serve pages with UTF-8 instead of your default
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    14
# locale charset, you can do so by uncommenting the following lines.
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    15
# Note that this will cause your .hgrc files to be interpreted in
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    16
# UTF-8 and all your repo files to be displayed using UTF-8.
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    17
#
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    18
#import os
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    19
#os.environ["HGENCODING"] = "UTF-8"
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    20
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    21
from mercurial.hgweb.hgwebdir_mod import hgwebdir
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    22
from mercurial.hgweb.request import wsgiapplication
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    23
from flup.server.fcgi import WSGIServer
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    24
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    25
# The config file looks like this.  You can have paths to individual
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    26
# repos, collections of repos in a directory tree, or both.
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    27
#
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    28
# [paths]
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    29
# virtual/path = /real/path
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    30
# virtual/path = /real/path
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    31
#
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    32
# [collections]
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    33
# /prefix/to/strip/off = /root/of/tree/full/of/repos
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    34
#
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    35
# collections example: say directory tree /foo contains repos /foo/bar,
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    36
# /foo/quux/baz.  Give this config section:
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    37
#   [collections]
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    38
#   /foo = /foo
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    39
# Then repos will list as bar and quux/baz.
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    40
#
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    41
# Alternatively you can pass a list of ('virtual/path', '/real/path') tuples
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    42
# or use a dictionary with entries like 'virtual/path': '/real/path'
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    43
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    44
def make_web_app():
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    45
    return hgwebdir("hgweb.config")
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    46
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
    47
WSGIServer(wsgiapplication(make_web_app)).run()