| Index: sky/sdk/packages/sky/lib/sky_tool
|
| diff --git a/sky/sdk/packages/sky/bin/sky b/sky/sdk/packages/sky/lib/sky_tool
|
| similarity index 90%
|
| rename from sky/sdk/packages/sky/bin/sky
|
| rename to sky/sdk/packages/sky/lib/sky_tool
|
| index 7224bcb4f32564700ef612c259232801db88a4db..7d0747083bdc6d980f8a600397f30e78dd1074b9 100755
|
| --- a/sky/sdk/packages/sky/bin/sky
|
| +++ b/sky/sdk/packages/sky/lib/sky_tool
|
| @@ -13,17 +13,17 @@ import subprocess
|
| import sys
|
| import urlparse
|
|
|
| -SDK_TOOLS_DIR = os.path.dirname(os.path.abspath(__file__))
|
| -SDK_ROOT = os.path.dirname(SDK_TOOLS_DIR)
|
| +# TODO(eseidel): This should be BIN_DIR.
|
| +LIB_DIR = os.path.realpath(os.path.dirname(os.path.abspath(__file__)))
|
| +SKY_PACKAGE_ROOT = os.path.realpath(os.path.dirname(LIB_DIR))
|
|
|
| SKY_SERVER_PORT = 9888
|
| -DEFAULT_URL = os.path.join(SDK_ROOT, "examples/index.sky")
|
| APK_NAME = 'SkyDemo.apk'
|
| ANDROID_PACKAGE = "org.domokit.sky.demo"
|
| # FIXME: This assumes adb is in $PATH, we could look for ANDROID_HOME, etc?
|
| ADB_PATH = 'adb'
|
|
|
| -PID_FILE_PATH = "/tmp/skydemo.pids"
|
| +PID_FILE_PATH = "/tmp/sky_tool.pids"
|
| PID_FILE_KEYS = frozenset([
|
| 'remote_sky_server_port',
|
| 'sky_server_pid',
|
| @@ -112,16 +112,25 @@ def _url_for_path(port, root, path):
|
| class StartSky(object):
|
| def add_subparser(self, subparsers):
|
| start_parser = subparsers.add_parser('start',
|
| - help='launch SKyShell.apk on the device')
|
| + help='launch %s on the device' % APK_NAME)
|
| start_parser.add_argument('--install', action='store_true')
|
| start_parser.add_argument('project_or_path', nargs='?', type=str,
|
| default='main.sky')
|
| start_parser.set_defaults(func=self.run)
|
|
|
| + def _is_package_installed(self, package_name):
|
| + pm_path_cmd = [ADB_PATH, 'shell', 'pm', 'path', package_name]
|
| + return subprocess.check_output(pm_path_cmd).strip() != ''
|
| +
|
| def run(self, args, pids):
|
| StopSky().run(args, pids)
|
| +
|
| + if not self._is_package_installed(ANDROID_PACKAGE):
|
| + print '%s is not installed, installing.' % APK_NAME
|
| + args.install = True
|
| +
|
| if args.install:
|
| - apk_path = os.path.join(SDK_ROOT, 'apks', APK_NAME)
|
| + apk_path = os.path.join(SKY_PACKAGE_ROOT, 'apks', APK_NAME)
|
| if not os.path.exists(apk_path):
|
| print "'%s' does not exist?" % apk_path
|
| return 2
|
|
|