hgweb: minimize scope of a try-block in staticfile()
I think the exceptions are only relevant for the `os.stat()` and
`open()` calls, and maybe to the `fh.read()` call.
Differential Revision: https://phab.mercurial-scm.org/D8936
--- a/mercurial/hgweb/common.py Mon Aug 03 23:38:50 2020 -0700
+++ b/mercurial/hgweb/common.py Mon Aug 03 23:41:50 2020 -0700
@@ -197,18 +197,14 @@
directory = os.path.join(tp, b'static')
fpath = os.path.join(*fname.split(b'/'))
+ ct = pycompat.sysbytes(
+ mimetypes.guess_type(pycompat.fsdecode(fpath))[0] or r"text/plain"
+ )
path = os.path.join(directory, fpath)
try:
os.stat(path)
- ct = pycompat.sysbytes(
- mimetypes.guess_type(pycompat.fsdecode(fpath))[0] or r"text/plain"
- )
with open(path, b'rb') as fh:
data = fh.read()
-
- res.headers[b'Content-Type'] = ct
- res.setbodybytes(data)
- return res
except TypeError:
raise ErrorResponse(HTTP_SERVER_ERROR, b'illegal filename')
except OSError as err:
@@ -219,6 +215,10 @@
HTTP_SERVER_ERROR, encoding.strtolocal(err.strerror)
)
+ res.headers[b'Content-Type'] = ct
+ res.setbodybytes(data)
+ return res
+
def paritygen(stripecount, offset=0):
"""count parity of horizontal stripes for easier reading"""