15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/bin/env python 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file. 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import os 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import signal 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import shutil 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import subprocess 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import sys 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import build_server 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SERVER_PATH = sys.path[0] 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SRC_PATH = os.path.join(SERVER_PATH, os.pardir, os.pardir, os.pardir, os.pardir, 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) os.pardir) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)FILENAMES = ['app.yaml', 'appengine_main.py'] 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)def CleanUp(signal, frame): 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for filename in FILENAMES: 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) os.remove(os.path.join(SRC_PATH, filename)) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if len(sys.argv) < 2: 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print 'usage: start_dev_server.py <location of dev_appserver.py> [options]' 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) exit(0) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)signal.signal(signal.SIGINT, CleanUp) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)build_server.main() 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)for filename in FILENAMES: 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) shutil.copy(os.path.join(SERVER_PATH, filename), 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) os.path.join(SRC_PATH, filename)) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)args = [sys.executable] + sys.argv[1:] + [SRC_PATH] 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)subprocess.call(args) 35