35 lines
1.1 KiB
Python
Executable file
35 lines
1.1 KiB
Python
Executable file
#! /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()
|