Fix sky_tool's calling of adb, and shelldb's analyze and stop

Just silly fixes needed for our 4 copies of our python run script.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1064983003
This commit is contained in:
Eric Seidel 2015-04-07 15:15:56 -07:00
parent 97ed9fdd7d
commit 9d26851ecb
2 changed files with 34 additions and 7 deletions

View File

@ -209,8 +209,19 @@ class StopSky(object):
class SkyShellRunner(object):
def _check_for_adb(self):
try:
subprocess.call([ADB_PATH, '--help'])
except OSError:
print "'adb' (from the Android SDK) not in $PATH, can't continue."
return False
return True
def main(self):
logging.basicConfig(level=logging.WARNING)
if not self._check_for_adb()
sys.exit(2)
parser = argparse.ArgumentParser(description='Sky Demo Runner')
subparsers = parser.add_subparsers(help='sub-command help')

View File

@ -9,6 +9,7 @@ import json
import logging
import os
import re
import signal
import subprocess
import sys
import time
@ -23,7 +24,7 @@ DEFAULT_URL = "sky://domokit.github.io/home"
APK_NAME = 'SkyDemo.apk'
ADB_PATH = os.path.join(SRC_ROOT,
'third_party/android_tools/sdk/platform-tools/adb')
ANDROID_PACKAGE = "org.domokit.sky.demo"
PID_FILE_PATH = "/tmp/skydemo.pids"
PID_FILE_KEYS = frozenset([
@ -69,6 +70,10 @@ class Pids(object):
def clear(self):
self._dict = {}
def pop(self, key, default=None):
assert key in self._known_keys, '%s not in allowed_keys' % key
return self._dict.pop(key, default)
@classmethod
def read_from(cls, path, known_keys):
contents = {}
@ -106,6 +111,13 @@ def _url_from_args(args, pids):
return _convert_to_sky_url(url)
def dev_sdk_root(build_dir):
return os.path.join(build_dir, 'gen', 'sky_sdk')
def dev_packages_root(build_dir):
return os.path.join(dev_sdk_root(build_dir), 'packages_root')
class StartSky(object):
def add_subparser(self, subparsers):
start_parser = subparsers.add_parser('start',
@ -143,8 +155,8 @@ class StartSky(object):
print "'%s' does not exist?" % apk_path
return 2
sdk_root = os.path.join(args.build_dir, 'gen', 'sky_sdk')
packages_root = os.path.join(sdk_root, 'packages_root')
sdk_root = dev_sdk_root(args.build_dir)
packages_root = dev_packages_root(args.build_dir)
sky_tools_directory = os.path.join(SRC_ROOT, 'sky/tools')
subprocess.check_call([
os.path.join(sky_tools_directory, 'deploy_sdk.py'),
@ -197,8 +209,8 @@ class StopSky(object):
def run(self, args, pids):
self._kill_if_exists(pids, 'sky_server_pid', 'sky_server')
if 'remote_sky_server_port' in self.pids:
port_string = 'tcp:%s' % self.pids['remote_sky_server_port']
if 'remote_sky_server_port' in pids:
port_string = 'tcp:%s' % pids['remote_sky_server_port']
subprocess.call([ADB_PATH, 'reverse', '--remove', port_string])
subprocess.call([
@ -215,9 +227,12 @@ class Analyze(object):
analyze_parser.set_defaults(func=self.run)
def run(self, args, pids):
build_dir = pids.get('build_dir')
if not build_dir:
logging.fatal("pids file missing build_dir. Try 'start' first.")
return 2
ANALYZER_PATH = 'third_party/dart-sdk/dart-sdk/bin/dartanalyzer'
build_dir = os.path.abspath(pids['build_dir'])
bindings_path = os.path.join(build_dir, 'gen/sky/bindings')
sky_builtin_path = \
os.path.join(SRC_ROOT, 'sky/engine/bindings/builtin.dart')
@ -225,9 +240,10 @@ class Analyze(object):
analyzer_args = [ANALYZER_PATH,
"--url-mapping=dart:sky,%s" % dart_sky_path,
"--url-mapping=dart:sky_builtin,%s" % sky_builtin_path,
"--package-root", dev_packages_root(build_dir),
args.app_path
]
subprocess.call(analyzer_args)
return subprocess.call(analyzer_args)
class StartTracing(object):
def add_subparser(self, subparsers):