Mercurial > hg
annotate contrib/win32/hgwebdir_wsgi.py @ 51740:7226f2626fb1
httppeer: avoid another bad reference before assignment warning
This wasn't a problem, because `b''` from the `AttributeError` handler is in
`bundle2.bundletypes`, so the following loop and conditional always run at least
once. But PyCharm can't figure that out on its own, and it took a little
exploring to figure out it wasn't a problem. The usage in `bundle2.writebundle`
is to look it up in the map of bundle types, so it will break in a more obvious
way in the unlikely event that the empty string is removed from the map in the
future.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 29 Jul 2024 12:10:08 -0400 |
parents | ca7bde5dbafb |
children |
rev | line source |
---|---|
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
1 # An example WSGI script for IIS/isapi-wsgi to export multiple hgweb repos |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
2 # Copyright 2010-2016 Sune Foldager <cyano@me.com> |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
3 # |
10578
36715cd6ee3d
win32/hgwebdir_wsgi: clarify copyright license
Martin Geisler <mg@lazybytes.net>
parents:
10572
diff
changeset
|
4 # This software may be used and distributed according to the terms of the |
36715cd6ee3d
win32/hgwebdir_wsgi: clarify copyright license
Martin Geisler <mg@lazybytes.net>
parents:
10572
diff
changeset
|
5 # GNU General Public License version 2 or any later version. |
36715cd6ee3d
win32/hgwebdir_wsgi: clarify copyright license
Martin Geisler <mg@lazybytes.net>
parents:
10572
diff
changeset
|
6 # |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
7 # Requirements: |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
8 # - Python 2.7, preferably 64 bit |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
9 # - Mercurial installed from source (python setup.py install) or download the |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
10 # python module installer from https://www.mercurial-scm.org/wiki/Download |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
11 # - IIS 7 or newer |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
12 # |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
13 # |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
14 # Installation and use: |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
15 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
16 # - Download or clone the isapi-wsgi source and run python setup.py install. |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
17 # https://github.com/hexdump42/isapi-wsgi |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
18 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
19 # - Create a directory to hold the shim dll, config files etc. This can reside |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
20 # inside the standard IIS directory, C:\inetpub, or anywhere else. Copy this |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
21 # script there. |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
22 # |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
23 # - Run this script (i.e. python hgwebdir_wsgi.py) to get a shim dll. The |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
24 # shim is identical for all scripts, so you can just copy and rename one |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
25 # from an earlier run, if you wish. The shim needs to reside in the same |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
26 # directory as this script. |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
27 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
28 # - Start IIS manager and create a new app pool: |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
29 # .NET CLR Version: No Managed Code |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
30 # Advanced Settings: Enable 32 Bit Applications, if using 32 bit Python. |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
31 # You can adjust the identity and maximum worker processes if you wish. This |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
32 # setup works fine with multiple worker processes. |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
33 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
34 # - Create an IIS application where your hgwebdir is to be served from. |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
35 # Assign it the app pool you just created and point its physical path to the |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
36 # directory you created. |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
37 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
38 # - In the application, remove all handler mappings and setup a wildcard script |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
39 # handler mapping of type IsapiModule with the shim dll as its executable. |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
40 # This file MUST reside in the same directory as the shim. The easiest way |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
41 # to do all this is to close IIS manager, place a web.config file in your |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
42 # directory and start IIS manager again. The file should contain: |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
43 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
44 # <?xml version="1.0" encoding="UTF-8"?> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
45 # <configuration> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
46 # <system.webServer> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
47 # <handlers accessPolicy="Read, Script"> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
48 # <clear /> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
49 # <add name="hgwebdir" path="*" verb="*" modules="IsapiModule" |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
50 # scriptProcessor="C:\your\directory\_hgwebdir_wsgi.dll" |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
51 # resourceType="Unspecified" requireAccess="None" |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
52 # preCondition="bitness64" /> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
53 # </handlers> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
54 # </system.webServer> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
55 # </configuration> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
56 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
57 # Where "bitness64" should be replaced with "bitness32" for 32 bit Python. |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
58 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
59 # - Edit ISAPI And CGI Restrictions on the web server (global setting). Add a |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
60 # restriction pointing to your shim dll and allow it to run. |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
61 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
62 # - Create a configuration file in your directory and adjust the configuration |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
63 # variables below to match your needs. Example configuration: |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
64 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
65 # [web] |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
66 # style = gitweb |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
67 # push_ssl = false |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
68 # allow_push = * |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
69 # encoding = utf8 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
70 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
71 # [server] |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
72 # validate = true |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
73 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
74 # [paths] |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
75 # repo1 = c:\your\directory\repo1 |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
76 # repo2 = c:\your\directory\repo2 |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
77 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
78 # - Restart the web server and see if things are running. |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
79 # |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
80 |
29385
aa1d56003872
py3: shift from __future__ import absolute import to beginning (issue5269)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28521
diff
changeset
|
81 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
82 # Configuration file location |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
83 hgweb_config = r'c:\your\directory\wsgi.config' |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
84 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
85 # Global settings for IIS path translation |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
86 path_strip = 0 # Strip this many path elements off (when using url rewrite) |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
87 path_prefix = 1 # This many path elements are prefixes (depends on the |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
88 # virtual path of the IIS application). |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
89 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
90 import sys |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
91 |
10586
efd3b71fc293
win32/hgwebdir_wsgi: clarify documentation and clean up script a bit
Sune Foldager <cryo@cyanite.org>
parents:
10578
diff
changeset
|
92 # Adjust python path if this is not a system-wide install |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
93 # sys.path.insert(0, r'C:\your\custom\hg\build\lib.win32-2.7') |
10586
efd3b71fc293
win32/hgwebdir_wsgi: clarify documentation and clean up script a bit
Sune Foldager <cryo@cyanite.org>
parents:
10578
diff
changeset
|
94 |
efd3b71fc293
win32/hgwebdir_wsgi: clarify documentation and clean up script a bit
Sune Foldager <cryo@cyanite.org>
parents:
10578
diff
changeset
|
95 # Enable tracing. Run 'python -m win32traceutil' to debug |
14974
a2aa75118837
win32/hgwebdir_wsgi: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com>
parents:
10586
diff
changeset
|
96 if getattr(sys, 'isapidllhandle', None) is not None: |
10586
efd3b71fc293
win32/hgwebdir_wsgi: clarify documentation and clean up script a bit
Sune Foldager <cryo@cyanite.org>
parents:
10578
diff
changeset
|
97 import win32traceutil |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
98 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
99 win32traceutil.SetupForPrint # silence unused import warning |
10586
efd3b71fc293
win32/hgwebdir_wsgi: clarify documentation and clean up script a bit
Sune Foldager <cryo@cyanite.org>
parents:
10578
diff
changeset
|
100 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
101 import isapi_wsgi |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
102 from mercurial.hgweb.hgwebdir_mod import hgwebdir |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
103 |
51703
ca7bde5dbafb
black: format the codebase with 23.3.0
Raphaël Gomès <rgomes@octobus.net>
parents:
51700
diff
changeset
|
104 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
105 # Example tweak: Replace isapi_wsgi's handler to provide better error message |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
106 # Other stuff could also be done here, like logging errors etc. |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
107 class WsgiHandler(isapi_wsgi.IsapiWsgiHandler): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
108 error_status = '500 Internal Server Error' # less silly error message |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
109 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
110 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
111 isapi_wsgi.IsapiWsgiHandler = WsgiHandler |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
112 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
113 # Only create the hgwebdir instance once |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
114 application = hgwebdir(hgweb_config) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
115 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
116 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
117 def handler(environ, start_response): |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
118 # Translate IIS's weird URLs |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
119 url = environ['SCRIPT_NAME'] + environ['PATH_INFO'] |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
120 paths = url[1:].split('/')[path_strip:] |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
121 script_name = '/' + '/'.join(paths[:path_prefix]) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
122 path_info = '/'.join(paths[path_prefix:]) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
123 if path_info: |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
124 path_info = '/' + path_info |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
125 environ['SCRIPT_NAME'] = script_name |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
126 environ['PATH_INFO'] = path_info |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
127 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
128 return application(environ, start_response) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
129 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
130 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
131 def __ExtensionFactory__(): |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
132 return isapi_wsgi.ISAPISimpleHandler(handler) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
133 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
134 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
135 if __name__ == '__main__': |
22198
77142de48ae4
cleanup: make sure we always access members of imported modules
Mads Kiilerich <madski@unity3d.com>
parents:
17424
diff
changeset
|
136 from isapi.install import ISAPIParameters, HandleCommandLine |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41849
diff
changeset
|
137 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
138 params = ISAPIParameters() |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
139 HandleCommandLine(params) |