Mercurial > hg
annotate hgweb.cgi @ 48185:2f2107c01dee
dispatch: ignore failure to flush ui
When the pager dies, we get a `SIGPIPE`. That causes
`error.SignalInterrupt` to be raised ` (from `ui._catchterm()`). Any
further writes or flushes will cause further `SIGPIPE`s and furhter
`error.SignalInterrupt`. If we write or flush outside of the
try/except that handle `KeyboardInterrupt` (which
`error.SignalInterrupt` is a subclass of), then control will escape
from the `dispatch` module. Let's fix that by ignoring errors from
flushing the ui.
I would have rather fixed this by restoring the stdout and stderr
streams when the pager dies, but it gets complicated because of
multiple ui instances (ui/lui) and different pager setups between
regular hg and chg.
This changes a test in `test-pager.t`, but I don't understand why. I
would have thought that all the output from the command should have
gone to the broken pager.
Differential Revision: https://phab.mercurial-scm.org/D11627
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 08 Oct 2021 13:36:02 -0700 |
parents | c102b704edb5 |
children | d5cd1fd690f3 |
rev | line source |
---|---|
45830
c102b704edb5
global: use python3 in shebangs
Gregory Szorc <gregory.szorc@gmail.com>
parents:
45398
diff
changeset
|
1 #!/usr/bin/env python3 |
159 | 2 # |
11000
338167735124
hgweb: simplify hgweb.cgi, add help pointer
Matt Mackall <mpm@selenic.com>
parents:
6142
diff
changeset
|
3 # An example hgweb CGI script, edit as necessary |
26421
4b0fc75f9403
urls: bulk-change primary website URLs
Matt Mackall <mpm@selenic.com>
parents:
15475
diff
changeset
|
4 # See also https://mercurial-scm.org/wiki/PublishingRepositories |
159 | 5 |
11000
338167735124
hgweb: simplify hgweb.cgi, add help pointer
Matt Mackall <mpm@selenic.com>
parents:
6142
diff
changeset
|
6 # 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:
43691
diff
changeset
|
7 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
|
8 |
15475
85cba926cb59
hgweb: add hint about finding library path with debuginstall
Matt Mackall <mpm@selenic.com>
parents:
11503
diff
changeset
|
9 # 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:
11503
diff
changeset
|
10 # (consult "installed modules" path from 'hg debuginstall'): |
43691
47ef023d0165
black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26421
diff
changeset
|
11 # 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:
3868
diff
changeset
|
12 |
6080
4baad19c4801
hgweb: disable cgitb by default
Maxim Dounin <mdounin@mdounin.ru>
parents:
5995
diff
changeset
|
13 # Uncomment to send python tracebacks to the browser if an error occurs: |
43691
47ef023d0165
black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26421
diff
changeset
|
14 # import cgitb; cgitb.enable() |
47ef023d0165
black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26421
diff
changeset
|
15 |
47ef023d0165
black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26421
diff
changeset
|
16 from mercurial import demandimport |
391
5f65a108a559
hgweb: pull cgitb into CGI script example, where it can easily be disabled
mpm@selenic.com
parents:
202
diff
changeset
|
17 |
43691
47ef023d0165
black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26421
diff
changeset
|
18 demandimport.enable() |
11000
338167735124
hgweb: simplify hgweb.cgi, add help pointer
Matt Mackall <mpm@selenic.com>
parents:
6142
diff
changeset
|
19 from mercurial.hgweb import hgweb, wsgicgi |
43691
47ef023d0165
black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26421
diff
changeset
|
20 |
11000
338167735124
hgweb: simplify hgweb.cgi, add help pointer
Matt Mackall <mpm@selenic.com>
parents:
6142
diff
changeset
|
21 application = hgweb(config) |
6141
90e5c82a3859
Backed out changeset b913d3aacddc (see issue971/msg5317)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
5995
diff
changeset
|
22 wsgicgi.launch(application) |