Mercurial > public > mercurial-scm > hg-stable
annotate contrib/win32/hgwebdir_wsgi.py @ 40450:41f0529b5112 stable
commandserver: get around ETIMEDOUT raised by selectors2
selector.select() should exits with an empty event list on timed out, but
selectors2 raises OSError if timeout expires while recovering from EINTR.
Spotted while debugging new chg feature.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Mon, 03 Dec 2018 21:45:15 +0900 |
parents | aa1d56003872 |
children | d22198b4b3dd |
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 # - PyWin32 for Python 2.7 (32 or 64 bit) |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
10 # - 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
|
11 # 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
|
12 # - IIS 7 or newer |
10572
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 # |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
15 # Installation and use: |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
16 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
17 # - 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
|
18 # https://github.com/hexdump42/isapi-wsgi |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
19 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
20 # - 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
|
21 # 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
|
22 # script there. |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
23 # |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
24 # - 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
|
25 # 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
|
26 # 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
|
27 # directory as this script. |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
28 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
29 # - 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
|
30 # .NET CLR Version: No Managed Code |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
31 # 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
|
32 # 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
|
33 # 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
|
34 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
35 # - 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
|
36 # 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
|
37 # directory you created. |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
38 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
39 # - 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
|
40 # 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
|
41 # 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
|
42 # 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
|
43 # 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
|
44 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
45 # <?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
|
46 # <configuration> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
47 # <system.webServer> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
48 # <handlers accessPolicy="Read, Script"> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
49 # <clear /> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
50 # <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
|
51 # 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
|
52 # resourceType="Unspecified" requireAccess="None" |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
53 # preCondition="bitness64" /> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
54 # </handlers> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
55 # </system.webServer> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
56 # </configuration> |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
57 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
58 # 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
|
59 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
60 # - 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
|
61 # 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
|
62 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
63 # - 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
|
64 # 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
|
65 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
66 # [web] |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
67 # style = gitweb |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
68 # push_ssl = false |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
69 # allow_push = * |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
70 # encoding = utf8 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
71 # |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
72 # [server] |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
73 # validate = true |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
74 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
75 # [paths] |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
76 # repo1 = c:\your\directory\repo1 |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
77 # repo2 = c:\your\directory\repo2 |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
78 # |
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
79 # - 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
|
80 # |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
81 |
29385
aa1d56003872
py3: shift from __future__ import absolute import to beginning (issue5269)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28521
diff
changeset
|
82 from __future__ import absolute_import |
aa1d56003872
py3: shift from __future__ import absolute import to beginning (issue5269)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28521
diff
changeset
|
83 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
84 # Configuration file location |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
85 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
|
86 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
87 # Global settings for IIS path translation |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
88 path_strip = 0 # Strip this many path elements off (when using url rewrite) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
89 path_prefix = 1 # This many path elements are prefixes (depends on the |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
90 # virtual path of the IIS application). |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
91 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
92 import sys |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
93 |
10586
efd3b71fc293
win32/hgwebdir_wsgi: clarify documentation and clean up script a bit
Sune Foldager <cryo@cyanite.org>
parents:
10578
diff
changeset
|
94 # Adjust python path if this is not a system-wide install |
28187
d3da97e58d42
hgwebdir_wsgi: update script and expand help
Sune Foldager <sune.foldager@edlund.dk>
parents:
22198
diff
changeset
|
95 #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
|
96 |
efd3b71fc293
win32/hgwebdir_wsgi: clarify documentation and clean up script a bit
Sune Foldager <cryo@cyanite.org>
parents:
10578
diff
changeset
|
97 # 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
|
98 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
|
99 import win32traceutil |
22198
77142de48ae4
cleanup: make sure we always access members of imported modules
Mads Kiilerich <madski@unity3d.com>
parents:
17424
diff
changeset
|
100 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
|
101 |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
102 import isapi_wsgi |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
103 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
|
104 |
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): |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
108 error_status = '500 Internal Server Error' # less silly error message |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
109 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
110 isapi_wsgi.IsapiWsgiHandler = WsgiHandler |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
111 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
112 # Only create the hgwebdir instance once |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
113 application = hgwebdir(hgweb_config) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
114 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
115 def handler(environ, start_response): |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
116 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
117 # Translate IIS's weird URLs |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
118 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
|
119 paths = url[1:].split('/')[path_strip:] |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
120 script_name = '/' + '/'.join(paths[:path_prefix]) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
121 path_info = '/'.join(paths[path_prefix:]) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
122 if path_info: |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
123 path_info = '/' + path_info |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
124 environ['SCRIPT_NAME'] = script_name |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
125 environ['PATH_INFO'] = path_info |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
126 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
127 return application(environ, start_response) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
128 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
129 def __ExtensionFactory__(): |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
130 return isapi_wsgi.ISAPISimpleHandler(handler) |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
131 |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
132 if __name__=='__main__': |
22198
77142de48ae4
cleanup: make sure we always access members of imported modules
Mads Kiilerich <madski@unity3d.com>
parents:
17424
diff
changeset
|
133 from isapi.install import ISAPIParameters, HandleCommandLine |
10572
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
134 params = ISAPIParameters() |
704af22f4907
add wsgi script for Microsoft IIS with isapi-wsgi
Sune Foldager <cryo@cyanite.org>
parents:
diff
changeset
|
135 HandleCommandLine(params) |