contrib/win32/hgwebdir_wsgi.py
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 24 Aug 2016 20:00:52 -0700
changeset 30011 d81fe5af92b8
parent 29385 aa1d56003872
child 41849 d22198b4b3dd
permissions -rw-r--r--
revlog: make code in builddelta() slightly easier to read self.compress() is destructured into its components. "l" is renamed to "deltalen."
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)