Mercurial > hg
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 |
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() |