annotate contrib/hgwebdir.fcgi @ 7504:d8cd79fbed3c

Revise Bugzilla module comments into extension help. Revise the comments detailing module usage at the start of the Bugzilla extension into extension help text. Expand the detail given on extension settings, in an attempt to permit the user to configure successfully without having to study the extension code. Show a sample configuration as well.
author Jim Hague <jim.hague@acm.org>
date Wed, 10 Dec 2008 16:29:53 +0000
parents 79d1bb737c16
children 43edbd8cc1e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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
5244
79279b5583c6 cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5197
diff changeset
5 # adjust python path if not a system-wide install:
79279b5583c6 cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5197
diff changeset
6 #import sys
79279b5583c6 cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5197
diff changeset
7 #sys.path.insert(0, "/path/to/python/lib")
79279b5583c6 cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5197
diff changeset
8
5197
55860a45bbf2 Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4391
diff changeset
9 # enable demandloading to reduce startup time
55860a45bbf2 Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4391
diff changeset
10 from mercurial import demandimport; demandimport.enable()
55860a45bbf2 Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4391
diff changeset
11
6085
e1f11b8a1e9e hgweb: disable cgitb by default in hgwebdir.fcgi too
Maxim Dounin <mdounin@mdounin.ru>
parents: 5995
diff changeset
12 # Uncomment to send python tracebacks to the browser if an error occurs:
e1f11b8a1e9e hgweb: disable cgitb by default in hgwebdir.fcgi too
Maxim Dounin <mdounin@mdounin.ru>
parents: 5995
diff changeset
13 #import cgitb
e1f11b8a1e9e hgweb: disable cgitb by default in hgwebdir.fcgi too
Maxim Dounin <mdounin@mdounin.ru>
parents: 5995
diff changeset
14 #cgitb.enable()
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
15
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
16 # 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
17 # 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
18 # 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
19 # 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
20 #
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
21 #import os
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
22 #os.environ["HGENCODING"] = "UTF-8"
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
23
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
24 from mercurial.hgweb.hgwebdir_mod import hgwebdir
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
25 from mercurial.hgweb.request import wsgiapplication
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
26 from flup.server.fcgi import WSGIServer
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 # 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
29 # 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
30 #
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
31 # [paths]
7450
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
32 # virtual/path1 = /real/path1
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
33 # virtual/path2 = /real/path2
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
34 # virtual/root = /real/root/*
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
35 # / = /real/root2/*
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
36 #
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 # /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
39 #
7450
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
40 # paths example:
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
41 #
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
42 # * First two lines mount one repository into one virtual path, like
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
43 # '/real/path1' into 'virtual/path1'.
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
44 #
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
45 # * The third entry tells every mercurial repository found in
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
46 # '/real/root', recursively, should be mounted in 'virtual/root'. This
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
47 # format is preferred over the [collections] one, using absolute paths
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
48 # as configuration keys is not supported on every platform (including
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
49 # Windows).
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
50 #
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
51 # * The last entry is a special case mounting all repositories in
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
52 # '/real/root2' in the root of the virtual directory.
79d1bb737c16 hgweb: extend [paths] syntax to match repositories recursively (issue852)
Patrick Mezard <pmezard@gmail.com>
parents: 6142
diff changeset
53 #
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
54 # 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
55 # /foo/quux/baz. Give this config section:
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
56 # [collections]
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
57 # /foo = /foo
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
58 # Then repos will list as bar and quux/baz.
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
59 #
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
60 # 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
61 # 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
62
6141
90e5c82a3859 Backed out changeset b913d3aacddc (see issue971/msg5317)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5995
diff changeset
63 def make_web_app():
90e5c82a3859 Backed out changeset b913d3aacddc (see issue971/msg5317)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5995
diff changeset
64 return hgwebdir("hgweb.config")
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
65
6141
90e5c82a3859 Backed out changeset b913d3aacddc (see issue971/msg5317)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5995
diff changeset
66 WSGIServer(wsgiapplication(make_web_app)).run()