2016-02-16 19:07:48 +00:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# Copyright 2016 the V8 project 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
|
2017-04-04 08:23:24 +00:00
|
|
|
import signal
|
2016-02-16 19:07:48 +00:00
|
|
|
import subprocess
|
|
|
|
import sys
|
|
|
|
|
|
|
|
GCMOLE_PATH = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
CLANG_BIN = os.path.join(GCMOLE_PATH, 'gcmole-tools', 'bin')
|
|
|
|
CLANG_PLUGINS = os.path.join(GCMOLE_PATH, 'gcmole-tools')
|
|
|
|
LUA = os.path.join(GCMOLE_PATH, 'gcmole-tools', 'lua52')
|
|
|
|
DRIVER = os.path.join(GCMOLE_PATH, 'gcmole.lua')
|
2016-02-17 08:39:44 +00:00
|
|
|
BASE_PATH = os.path.dirname(os.path.dirname(GCMOLE_PATH))
|
2016-02-16 19:07:48 +00:00
|
|
|
|
|
|
|
assert len(sys.argv) == 2
|
|
|
|
|
2017-04-04 08:23:24 +00:00
|
|
|
proc = subprocess.Popen(
|
2016-02-16 19:07:48 +00:00
|
|
|
[LUA, DRIVER, sys.argv[1]],
|
|
|
|
env={'CLANG_BIN': CLANG_BIN, 'CLANG_PLUGINS': CLANG_PLUGINS},
|
2016-02-17 08:39:44 +00:00
|
|
|
cwd=BASE_PATH,
|
2017-04-04 08:23:24 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
def handle_sigterm(*args):
|
|
|
|
try:
|
|
|
|
proc.kill()
|
|
|
|
except OSError:
|
|
|
|
pass
|
|
|
|
|
|
|
|
signal.signal(signal.SIGTERM, handle_sigterm)
|
|
|
|
|
|
|
|
proc.communicate()
|
|
|
|
sys.exit(proc.returncode)
|