| Index: sky/tools/shelldb
|
| diff --git a/sky/tools/shelldb b/sky/tools/shelldb
|
| index ba5b1d1bd95a63849018719d9100a7f5e5c596c8..e63c176e4f27dad16187beaa60333d447dd60f37 100755
|
| --- a/sky/tools/shelldb
|
| +++ b/sky/tools/shelldb
|
| @@ -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):
|
|
|