Home | History | Annotate | Download | only in trace-viewer
      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.
      5 import optparse
      6 import os
      7 import sys
      8 import time
      9 
     10 import SimpleHTTPServer
     11 import BaseHTTPServer
     12 
     13 from build import calcdeps
     14 
     15 DEFAULT_PORT = 8003
     16 DEPS_CHECK_DELAY = 5
     17 
     18 class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
     19   def do_GET(self):
     20     if self.path == '/src/deps.js':
     21       current_time = time.time()
     22       if self.server.next_deps_check < current_time:
     23         self.log_message('Regenerating deps')
     24         self.server.next_deps_check = current_time + DEPS_CHECK_DELAY
     25         calcdeps.regenerate_deps()
     26     return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
     27 
     28 class Server(BaseHTTPServer.HTTPServer):
     29   def __init__(self, *args, **kwargs):
     30     BaseHTTPServer.HTTPServer.__init__(self, *args, **kwargs)
     31     self.next_deps_check = -1
     32 
     33 def Main(args):
     34   parser = optparse.OptionParser()
     35   parser.add_option('--port',
     36                     action='store',
     37                     type='int',
     38                     default=DEFAULT_PORT,
     39                     help='Port to serve from')
     40   options, args = parser.parse_args()
     41   server = Server(('', options.port), Handler)
     42   sys.stderr.write("Now running on http://localhost:%i\n" % options.port)
     43   server.serve_forever()
     44 
     45 if __name__ == '__main__':
     46   sys.exit(Main(sys.argv[1:]))
     47