contrib/hgweb.fcgi
author Gregory Szorc <gregory.szorc@gmail.com>
Fri, 25 Jan 2019 16:00:34 -0800
changeset 41406 b141b5243b37
parent 15475 85cba926cb59
child 43703 99e231afc29c
permissions -rwxr-xr-x
util: cast memoryview to bytes Python 3 uses readinto() instead of read() in places. And taking a slice of the buffer passed to readinto() will produce a memoryview. _writedata() then gets confused when testing for `b'\n' in data` because memoryview is an iterable over ints instead of 1 character bytes. We work around by casting a memoryview to bytes. Differential Revision: https://phab.mercurial-scm.org/D5704

#!/usr/bin/env python
#
# An example FastCGI script for use with flup, edit as necessary

# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"

# Uncomment and adjust if Mercurial is not installed system-wide
# (consult "installed modules" path from 'hg debuginstall'):
#import sys; sys.path.insert(0, "/path/to/python/lib")

# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb
from flup.server.fcgi import WSGIServer
application = hgweb(config)
WSGIServer(application).run()