| #! /usr/bin/env python |
| # Copyright 2015 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 os |
| import subprocess |
| import sys |
| import time |
| |
| |
| sys.path.append(os.path.dirname(os.path.realpath(__file__))) |
| import packaging |
| |
| |
| def main(): |
| root_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) |
| with packaging.TempAppDir(root_dir, symlinks=True) as temp_app_dir: |
| yaml_files = list(file_name for file_name in packaging.Yamls(temp_app_dir) |
| if os.path.basename(file_name) != 'cron.yaml') |
| args = ['dev_appserver.py'] + yaml_files + sys.argv[1:] |
| |
| server = subprocess.Popen(args, cwd=temp_app_dir) |
| try: |
| server.wait() |
| except KeyboardInterrupt: |
| server.wait() |
| # It's pretty much impossible to wait for all the subprocesses of the dev |
| # server to finish, as they all shut down asynchronously. But their |
| # shutdown timeouts are generally 1 second, so that's probably enough. |
| time.sleep(1) |
| |
| |
| if __name__ == '__main__': |
| main() |