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: |