hgweb: minimize scope of a try-block in staticfile()
authorMartin von Zweigbergk <martinvonz@google.com>
Mon, 03 Aug 2020 23:41:50 -0700
changeset 45380 f0735f2ce542
parent 45379 ec2fc4d038c2
child 45381 ede4c121239e
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
mercurial/hgweb/common.py
--- 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"""