run_dev_server.py revision 88448d9ae4dfff1805045790ef5f32495d62abcc
1#!/usr/bin/env python
2# Copyright (c) 2012 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5import optparse
6import os
7import sys
8
9import SimpleHTTPServer
10import BaseHTTPServer
11
12from build import calcdeps
13
14DEFAULT_PORT = 8003
15
16class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
17  def do_GET(self):
18    if self.path == '/src/deps.js':
19      self.log_message('Regenerating deps')
20      calcdeps.regenerate_deps()
21    return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
22
23class Server(BaseHTTPServer.HTTPServer):
24  def handle_one_request(self):
25    try:
26      HTTPServer.handle_one_request(self)
27    except KeyboardInterrupt:
28      sys.exit(255)
29
30def Main(args):
31  parser = optparse.OptionParser()
32  parser.add_option('--port',
33                    action='store',
34                    type='int',
35                    default=DEFAULT_PORT,
36                    help='Port to serve from')
37  options, args = parser.parse_args()
38  server = Server(('', options.port), Handler)
39  sys.stderr.write("Now running on http://localhost:%i\n" % options.port)
40  server.serve_forever()
41
42if __name__ == '__main__':
43  sys.exit(Main(sys.argv[1:]))
44