Skip to content

Commit

Permalink
Issue #8004: add a serve target to the Doc Makefile.
Browse files Browse the repository at this point in the history
  • Loading branch information
djc committed Feb 24, 2010
1 parent 2d78070 commit e4c74e1
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Doc/Makefile
Expand Up @@ -27,6 +27,7 @@ help:
@echo " suspicious to check for suspicious markup in output text"
@echo " coverage to check documentation coverage for library and C API"
@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
checkout:
Expand Down Expand Up @@ -149,3 +150,6 @@ dist:

check:
$(PYTHON) tools/rstlint.py -i tools

serve:
../Tools/scripts/serve.py build/html
25 changes: 25 additions & 0 deletions Tools/scripts/serve.py
@@ -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()

0 comments on commit e4c74e1

Please sign in to comment.