annotate contrib/hgweb.fcgi @ 45435:64de86fd0984

tags: take lock instead of wlock before writing hgtagsfnodes1 cache This cache is shared across stores and hence we should take store lock before writing to it. Otherwise there will be race where one share with wlock is writing to this cache and other share with wlock is trying to read it simultaneously. Differential Revision: https://phab.mercurial-scm.org/D9001
author Pulkit Goyal <7895pulkit@gmail.com>
date Tue, 08 Sep 2020 19:36:40 +0530
parents d58a205d0672
children c102b704edb5
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 #
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
3 # An example FastCGI script for use with flup, edit as necessary
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
4
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
5 # Path to repo or hgweb config to serve (see 'hg help hgweb')
45398
d58a205d0672 hgweb: compatibility of hgweb.cgi template with Python 3
Harald Klimach <harald@klimachs.de>
parents: 43659
diff changeset
6 config = b"/path/to/repo/or/config"
5244
79279b5583c6 cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5197
diff changeset
7
15475
85cba926cb59 hgweb: add hint about finding library path with debuginstall
Matt Mackall <mpm@selenic.com>
parents: 11002
diff changeset
8 # Uncomment and adjust if Mercurial is not installed system-wide
85cba926cb59 hgweb: add hint about finding library path with debuginstall
Matt Mackall <mpm@selenic.com>
parents: 11002
diff changeset
9 # (consult "installed modules" path from 'hg debuginstall'):
43659
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
10 # import sys; sys.path.insert(0, "/path/to/python/lib")
5197
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:
43659
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
13 # import cgitb; cgitb.enable()
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
14
43659
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
15 from mercurial import demandimport
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
16
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
17 demandimport.enable()
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
18 from mercurial.hgweb import hgweb
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
19 from flup.server.fcgi import WSGIServer
43659
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
20
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
21 application = hgweb(config)
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
22 WSGIServer(application).run()