contrib/win32/hgwebdir_wsgi.py
author Gregory Szorc <gregory.szorc@gmail.com>
Mon, 26 Mar 2018 13:59:56 -0700
changeset 37289 5fadc63ac99f
parent 29385 aa1d56003872
child 41854 d22198b4b3dd
permissions -rw-r--r--
wireproto: explicit API to create outgoing streams It is better to create outgoing streams through the reactor so the reactor knows about what streams are active and can track them accordingly. Test output changes slightly because frames from subsequent responses no longer have the "stream begin" stream flag set because the stream is now used across all responses. Differential Revision: https://phab.mercurial-scm.org/D2947
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)