author | Gregory Szorc <gregory.szorc@gmail.com> |
Wed, 12 Sep 2018 11:31:14 -0700 | |
changeset 39688 | 2f9cdb5b3644 |
parent 29385 | aa1d56003872 |
child 41849 | d22198b4b3dd |
permissions | -rw-r--r-- |
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) |