#!/usr/bin/env python
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import optparse
import os
import sys
import time
import SimpleHTTPServer
import BaseHTTPServer
from build import calcdeps
DEFAULT_PORT = 8003
DEPS_CHECK_DELAY = 5
class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == '/src/deps.js':
current_time = time.time()
if self.server.next_deps_check < current_time:
self.log_message('Regenerating deps')
self.server.next_deps_check = current_time + DEPS_CHECK_DELAY
calcdeps.regenerate_deps()
return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
class Server(BaseHTTPServer.HTTPServer):
def __init__(self, *args, **kwargs):
BaseHTTPServer.HTTPServer.__init__(self, *args, **kwargs)
self.next_deps_check = -1
def Main(args):
parser = optparse.OptionParser()
parser.add_option('--port',
action='store',
type='int',
default=DEFAULT_PORT,
help='Port to serve from')
options, args = parser.parse_args()
server = Server(('', options.port), Handler)
sys.stderr.write("Now running on http://localhost:%i\n" % options.port)
server.serve_forever()
if __name__ == '__main__':
sys.exit(Main(sys.argv[1:]))