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