contrib/hgwebdir.fcgi
changeset 11032 27f98676f11b
parent 11030 d02b5c528dca
parent 11022 0429d0d49f92
child 11033 0179840ab0d3
equal deleted inserted replaced
11030:d02b5c528dca 11032:27f98676f11b
     1 #!/usr/bin/env python
       
     2 #
       
     3 # An example CGI script to export multiple hgweb repos, edit as necessary
       
     4 
       
     5 # adjust python path if not a system-wide install:
       
     6 #import sys
       
     7 #sys.path.insert(0, "/path/to/python/lib")
       
     8 
       
     9 # enable demandloading to reduce startup time
       
    10 from mercurial import demandimport; demandimport.enable()
       
    11 
       
    12 # Uncomment to send python tracebacks to the browser if an error occurs:
       
    13 #import cgitb
       
    14 #cgitb.enable()
       
    15 
       
    16 # If you'd like to serve pages with UTF-8 instead of your default
       
    17 # locale charset, you can do so by uncommenting the following lines.
       
    18 # Note that this will cause your .hgrc files to be interpreted in
       
    19 # UTF-8 and all your repo files to be displayed using UTF-8.
       
    20 #
       
    21 #import os
       
    22 #os.environ["HGENCODING"] = "UTF-8"
       
    23 
       
    24 from mercurial.hgweb.hgwebdir_mod import hgwebdir
       
    25 from flup.server.fcgi import WSGIServer
       
    26 
       
    27 # The config file looks like this.  You can have paths to individual
       
    28 # repos, collections of repos in a directory tree, or both.
       
    29 #
       
    30 # [paths]
       
    31 # virtual/path1 = /real/path1
       
    32 # virtual/path2 = /real/path2
       
    33 # virtual/root = /real/root/*
       
    34 # / = /real/root2/*
       
    35 #
       
    36 # [collections]
       
    37 # /prefix/to/strip/off = /root/of/tree/full/of/repos
       
    38 #
       
    39 # paths example: 
       
    40 #
       
    41 # * First two lines mount one repository into one virtual path, like
       
    42 # '/real/path1' into 'virtual/path1'.
       
    43 #
       
    44 # * The third entry tells every mercurial repository found in
       
    45 # '/real/root', recursively, should be mounted in 'virtual/root'. This
       
    46 # format is preferred over the [collections] one, using absolute paths
       
    47 # as configuration keys is not supported on every platform (including
       
    48 # Windows).
       
    49 #
       
    50 # * The last entry is a special case mounting all repositories in
       
    51 # '/real/root2' in the root of the virtual directory.
       
    52 #
       
    53 # collections example: say directory tree /foo contains repos /foo/bar,
       
    54 # /foo/quux/baz.  Give this config section:
       
    55 #   [collections]
       
    56 #   /foo = /foo
       
    57 # Then repos will list as bar and quux/baz.
       
    58 #
       
    59 # Alternatively you can pass a list of ('virtual/path', '/real/path') tuples
       
    60 # or use a dictionary with entries like 'virtual/path': '/real/path'
       
    61 
       
    62 WSGIServer(hgwebdir('hgweb.config')).run()