contrib/hgwebdir.wsgi
author Sune Foldager <cryo@cyanite.org>
Sat, 06 Feb 2010 20:24:51 +0100
changeset 10358 d42821cd5c96
parent 7800 58125c27ddbe
permissions -rw-r--r--
pull: with -u and -r, update to the first revision given This makes pull consistent with clone. The actual change is in mercurial.hg.parseurl, changing its checkout result, which is only used for pull.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7800
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     1
# An example WSGI (use with mod_wsgi) script to export multiple hgweb repos
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     2
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     3
# adjust python path if not a system-wide install:
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     4
#import sys
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     5
#sys.path.insert(0, "/path/to/python/lib")
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     6
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     7
# enable demandloading to reduce startup time
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     8
from mercurial import demandimport; demandimport.enable()
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     9
from mercurial.hgweb.hgwebdir_mod import hgwebdir
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    10
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    11
# If you'd like to serve pages with UTF-8 instead of your default
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    12
# locale charset, you can do so by uncommenting the following lines.
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    13
# Note that this will cause your .hgrc files to be interpreted in
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    14
# UTF-8 and all your repo files to be displayed using UTF-8.
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    15
#
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    16
#import os
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    17
#os.environ["HGENCODING"] = "UTF-8"
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    18
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    19
# The config file looks like this.  You can have paths to individual
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    20
# repos, collections of repos in a directory tree, or both.
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    21
#
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    22
# [paths]
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    23
# virtual/path1 = /real/path1
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    24
# virtual/path2 = /real/path2
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    25
# virtual/root = /real/root/*
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    26
# / = /real/root2/*
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    27
#
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    28
# paths example:
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    29
#
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    30
# * First two lines mount one repository into one virtual path, like
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    31
# '/real/path1' into 'virtual/path1'.
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    32
#
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    33
# * The third entry tells every mercurial repository found in
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    34
# '/real/root', recursively, should be mounted in 'virtual/root'. This
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    35
# format is preferred over the [collections] one, using absolute paths
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    36
# as configuration keys is not supported on every platform (including
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    37
# Windows).
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    38
#
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    39
# * The last entry is a special case mounting all repositories in
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    40
# '/real/root2' in the root of the virtual directory.
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    41
#
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    42
# collections example: say directory tree /foo contains repos /foo/bar,
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    43
# /foo/quux/baz.  Give this config section:
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    44
#   [collections]
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    45
#   /foo = /foo
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    46
# Then repos will list as bar and quux/baz.
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    47
#
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    48
# Alternatively you can pass a list of ('virtual/path', '/real/path') tuples
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    49
# or use a dictionary with entries like 'virtual/path': '/real/path'
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    50
58125c27ddbe contrib: add hgwebdir.wsgi, to serve as a better example
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    51
application = hgwebdir('hgweb.config')