| Index: chrome/common/extensions/docs/server2/preview.py
|
| diff --git a/chrome/common/extensions/docs/server2/preview.py b/chrome/common/extensions/docs/server2/preview.py
|
| index 5ea0e10493de6236fda9ffebb5e4d4093b2bfa8b..a12ee0ed0abebf5057ae9a1fc154b7e1bdba11dc 100755
|
| --- a/chrome/common/extensions/docs/server2/preview.py
|
| +++ b/chrome/common/extensions/docs/server2/preview.py
|
| @@ -33,51 +33,25 @@ import build_server
|
| # server quits.
|
| build_server.main()
|
|
|
| -from render_servlet import AlwaysOnline
|
| from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
|
| -from local_renderer import LocalRenderer
|
| import logging
|
| import optparse
|
| import os
|
| import sys
|
| import time
|
|
|
| -def _GetLocalPath():
|
| - if os.sep in sys.argv[0]:
|
| - return os.path.join(sys.argv[0].rsplit(os.sep, 1)[0], os.pardir, os.pardir)
|
| - return os.path.join(os.pardir, os.pardir)
|
| -
|
| -@AlwaysOnline
|
| -def _Render(base_dir, path):
|
| - renderer = LocalRenderer(base_dir)
|
| - response = renderer.Render(path)
|
| - while response.status in [301, 302]:
|
| - redirect = response.headers['Location'].lstrip('/')
|
| - sys.stderr.write('<!-- Redirected %s to %s -->\n' % (path, redirect))
|
| - response = renderer.Render(redirect)
|
| - return response
|
| -
|
| -class RequestHandler(BaseHTTPRequestHandler):
|
| - class Factory(object):
|
| - def __init__(self, base_dir):
|
| - self._base_dir = base_dir
|
| -
|
| - def Create(self, *args):
|
| - return RequestHandler(self._base_dir, *args)
|
| -
|
| - def __init__(self, base_dir, *args):
|
| - self._base_dir = base_dir
|
| - BaseHTTPRequestHandler.__init__(self, *args)
|
| +from local_renderer import LocalRenderer
|
|
|
| - """A HTTPRequestHandler that outputs the docs page generated by Handler.
|
| - """
|
| +class _RequestHandler(BaseHTTPRequestHandler):
|
| + '''A HTTPRequestHandler that outputs the docs page generated by Handler.
|
| + '''
|
| def do_GET(self):
|
| - response = _Render(self._base_dir, self.path)
|
| + response = LocalRenderer.Render(self.path)
|
| self.send_response(response.status)
|
| for k, v in response.headers.iteritems():
|
| self.send_header(k, v)
|
| self.end_headers()
|
| - self.wfile.write(response.content)
|
| + self.wfile.write(response.content.ToString())
|
|
|
| if __name__ == '__main__':
|
| parser = optparse.OptionParser(
|
| @@ -85,9 +59,6 @@ if __name__ == '__main__':
|
| usage='usage: %prog [option]...')
|
| parser.add_option('-p', '--port', default='8000',
|
| help='port to run the server on')
|
| - parser.add_option('-d', '--directory', default=_GetLocalPath(),
|
| - help='extensions directory to serve from - '
|
| - 'should be chrome/common/extensions within a Chromium checkout')
|
| parser.add_option('-r', '--render', default='',
|
| help='statically render a page and print to stdout rather than starting '
|
| 'the server, e.g. apps/storage.html. The path may optionally end '
|
| @@ -98,13 +69,6 @@ if __name__ == '__main__':
|
|
|
| (opts, argv) = parser.parse_args()
|
|
|
| - if (not os.path.isdir(opts.directory) or
|
| - not os.path.isdir(os.path.join(opts.directory, 'docs')) or
|
| - not os.path.isdir(os.path.join(opts.directory, 'api'))):
|
| - print('Specified directory does not exist or does not contain extension '
|
| - 'docs.')
|
| - exit()
|
| -
|
| if opts.render:
|
| if opts.render.find('#') >= 0:
|
| (path, iterations) = opts.render.rsplit('#', 1)
|
| @@ -116,13 +80,13 @@ if __name__ == '__main__':
|
| if opts.time:
|
| start_time = time.time()
|
|
|
| - response = _Render(opts.directory, path)
|
| + response = LocalRenderer.Render(path)
|
| if response.status != 200:
|
| print('Error status: %s' % response.status)
|
| exit(1)
|
|
|
| for _ in range(extra_iterations):
|
| - _Render(opts.directory, path)
|
| + LocalRenderer.Render(path)
|
|
|
| if opts.time:
|
| print('Took %s seconds' % (time.time() - start_time))
|
| @@ -144,8 +108,7 @@ if __name__ == '__main__':
|
| print('')
|
|
|
| logging.getLogger().setLevel(logging.INFO)
|
| - server = HTTPServer(('', int(opts.port)),
|
| - RequestHandler.Factory(opts.directory).Create)
|
| + server = HTTPServer(('', int(opts.port)), _RequestHandler)
|
| try:
|
| server.serve_forever()
|
| finally:
|
|
|