Issue #8004: add a serve target to the Doc Makefile.

This commit is contained in:
Dirkjan Ochtman 2010-02-24 04:12:11 +00:00
parent 2d78070f63
commit e4c74e1ea2
2 changed files with 29 additions and 0 deletions

View File

@ -27,6 +27,7 @@ help:
@echo " suspicious to check for suspicious markup in output text" @echo " suspicious to check for suspicious markup in output text"
@echo " coverage to check documentation coverage for library and C API" @echo " coverage to check documentation coverage for library and C API"
@echo " dist to create a \"dist\" directory with archived docs for download" @echo " dist to create a \"dist\" directory with archived docs for download"
@echo " serve to serve the documentation on the localhost (8000)"
# Note: if you update versions here, do the same in make.bat and README.txt # Note: if you update versions here, do the same in make.bat and README.txt
checkout: checkout:
@ -149,3 +150,6 @@ dist:
check: check:
$(PYTHON) tools/rstlint.py -i tools $(PYTHON) tools/rstlint.py -i tools
serve:
../Tools/scripts/serve.py build/html

25
Tools/scripts/serve.py Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env python
import sys
import os
import mimetypes
from wsgiref import simple_server, util
def app(environ, respond):
fn = os.path.join(path, environ['PATH_INFO'][1:])
if '.' not in fn.split(os.path.sep)[-1]:
fn = os.path.join(fn, 'index.html')
type = mimetypes.guess_type(fn)[0]
if os.path.exists(fn):
respond('200 OK', [('Content-Type', type)])
return util.FileWrapper(open(fn))
else:
respond('404 Not Found', [('Content-Type', 'text/plain')])
return ['not found']
if __name__ == '__main__':
path = sys.argv[1]
port = int(sys.argv[2]) if len(sys.argv) > 2 else 8000
httpd = simple_server.make_server('', port, app)
httpd.serve_forever()