| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 | 2 |
| 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 """Server for viewing the compiled C++ code from tools/json_schema_compiler. | 6 """Server for viewing the compiled C++ code from tools/json_schema_compiler. |
| 7 """ | 7 """ |
| 8 | 8 |
| 9 import cc_generator | 9 import cc_generator |
| 10 import code | 10 import code |
| 11 import compiler | |
| 12 import cpp_type_generator | 11 import cpp_type_generator |
| 13 import cpp_util | 12 import cpp_util |
| 14 import h_generator | 13 import h_generator |
| 15 import idl_schema | 14 import idl_schema |
| 16 import json_schema | 15 import json_schema |
| 17 import model | 16 import model |
| 18 import optparse | 17 import optparse |
| 19 import os | 18 import os |
| 20 import schema_loader | 19 import schema_loader |
| 21 import sys | |
| 22 import urlparse | 20 import urlparse |
| 23 from highlighters import ( | 21 from highlighters import ( |
| 24 pygments_highlighter, none_highlighter, hilite_me_highlighter) | 22 pygments_highlighter, none_highlighter, hilite_me_highlighter) |
| 25 from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer | 23 from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer |
| 26 | 24 |
| 25 |
| 27 class CompilerHandler(BaseHTTPRequestHandler): | 26 class CompilerHandler(BaseHTTPRequestHandler): |
| 28 """A HTTPRequestHandler that outputs the result of tools/json_schema_compiler. | 27 """A HTTPRequestHandler that outputs the result of tools/json_schema_compiler. |
| 29 """ | 28 """ |
| 30 def do_GET(self): | 29 def do_GET(self): |
| 31 parsed_url = urlparse.urlparse(self.path) | 30 parsed_url = urlparse.urlparse(self.path) |
| 32 request_path = self._GetRequestPath(parsed_url) | 31 request_path = self._GetRequestPath(parsed_url) |
| 33 | 32 |
| 34 chromium_favicon = 'http://codereview.chromium.org/static/favicon.ico' | 33 chromium_favicon = 'http://codereview.chromium.org/static/favicon.ico' |
| 35 | 34 |
| 36 head = code.Code() | 35 head = code.Code() |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 html.Append('<li><a href="/%s/">%s/</a>' % (full_path, filename)) | 319 html.Append('<li><a href="/%s/">%s/</a>' % (full_path, filename)) |
| 321 elif file_ext in ['.json', '.idl']: | 320 elif file_ext in ['.json', '.idl']: |
| 322 # cc/h panes will automatically update via the hash change event. | 321 # cc/h panes will automatically update via the hash change event. |
| 323 html.Append('<li><a href="#%s">%s</a>' % | 322 html.Append('<li><a href="#%s">%s</a>' % |
| 324 (filename, filename)) | 323 (filename, filename)) |
| 325 | 324 |
| 326 html.Append('</ul>') | 325 html.Append('</ul>') |
| 327 | 326 |
| 328 return html.Render() | 327 return html.Render() |
| 329 | 328 |
| 329 |
| 330 class PreviewHTTPServer(HTTPServer, object): | 330 class PreviewHTTPServer(HTTPServer, object): |
| 331 def __init__(self, server_address, handler, highlighters): | 331 def __init__(self, server_address, handler, highlighters): |
| 332 super(PreviewHTTPServer, self).__init__(server_address, handler) | 332 super(PreviewHTTPServer, self).__init__(server_address, handler) |
| 333 self.highlighters = highlighters | 333 self.highlighters = highlighters |
| 334 | 334 |
| 335 | 335 |
| 336 if __name__ == '__main__': | 336 if __name__ == '__main__': |
| 337 parser = optparse.OptionParser( | 337 parser = optparse.OptionParser( |
| 338 description='Runs a server to preview the json_schema_compiler output.', | 338 description='Runs a server to preview the json_schema_compiler output.', |
| 339 usage='usage: %prog [option]...') | 339 usage='usage: %prog [option]...') |
| (...skipping 17 matching lines...) Expand all Loading... |
| 357 highlighters['pygments'] = pygments_highlighter.PygmentsHighlighter() | 357 highlighters['pygments'] = pygments_highlighter.PygmentsHighlighter() |
| 358 except ImportError as e: | 358 except ImportError as e: |
| 359 pass | 359 pass |
| 360 | 360 |
| 361 server = PreviewHTTPServer(('', int(opts.port)), | 361 server = PreviewHTTPServer(('', int(opts.port)), |
| 362 CompilerHandler, | 362 CompilerHandler, |
| 363 highlighters) | 363 highlighters) |
| 364 server.serve_forever() | 364 server.serve_forever() |
| 365 except KeyboardInterrupt: | 365 except KeyboardInterrupt: |
| 366 server.socket.close() | 366 server.socket.close() |
| OLD | NEW |