OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2015 The Chromium Authors. All rights reserved. | 2 # Copyright 2015 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 from skypy.skyserver import SkyServer | 6 from skypy.skyserver import SkyServer |
7 import argparse | 7 import argparse |
8 import json | 8 import json |
9 import logging | 9 import logging |
10 import os | 10 import os |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 pids['sky_server_port']) | 125 pids['sky_server_port']) |
126 url = SkyServer.url_for_path(remote_sky_server_port, | 126 url = SkyServer.url_for_path(remote_sky_server_port, |
127 pids['sky_server_root'], args.url_or_path) | 127 pids['sky_server_root'], args.url_or_path) |
128 return _convert_to_sky_url(url) | 128 return _convert_to_sky_url(url) |
129 | 129 |
130 | 130 |
131 def dev_packages_root(build_dir): | 131 def dev_packages_root(build_dir): |
132 return os.path.join(build_dir, 'gen', 'dart-pkg', 'packages') | 132 return os.path.join(build_dir, 'gen', 'dart-pkg', 'packages') |
133 | 133 |
134 | 134 |
| 135 def ensure_assets_are_downloaded(build_dir): |
| 136 sky_pkg_dir = os.path.join(build_dir, 'gen', 'dart-pkg', 'sky') |
| 137 sky_pkg_lib_dir = os.path.join(sky_pkg_dir, 'lib') |
| 138 sky_icons_dir = \ |
| 139 os.path.join(sky_pkg_lib_dir, 'assets', 'material-design-icons') |
| 140 if not os.path.isdir(sky_icons_dir): |
| 141 logging.info('NOTE: sky/assets/material-design-icons missing, ' |
| 142 'Running `download_material_design_icons` for you.') |
| 143 subprocess.check_call( |
| 144 [os.path.join(sky_pkg_lib_dir, 'download_material_design_icons')]) |
| 145 |
| 146 |
135 class StartSky(object): | 147 class StartSky(object): |
136 def add_subparser(self, subparsers): | 148 def add_subparser(self, subparsers): |
137 start_parser = subparsers.add_parser('start', | 149 start_parser = subparsers.add_parser('start', |
138 help='launch SKyShell.apk on the device') | 150 help='launch SkyShell.apk on the device') |
139 start_parser.add_argument('build_dir', type=str) | 151 start_parser.add_argument('build_dir', type=str) |
140 start_parser.add_argument('url_or_path', nargs='?', type=str, | 152 start_parser.add_argument('url_or_path', nargs='?', type=str, |
141 default=DEFAULT_URL) | 153 default=DEFAULT_URL) |
142 start_parser.add_argument('--no_install', action="store_false", | 154 start_parser.add_argument('--no_install', action="store_false", |
143 default=True, dest="install", | 155 default=True, dest="install", |
144 help="Don't install SkyDemo.apk before starting") | 156 help="Don't install SkyDemo.apk before starting") |
145 start_parser.set_defaults(func=self.run) | 157 start_parser.set_defaults(func=self.run) |
146 | 158 |
147 def _server_root_for_url(self, url_or_path): | 159 def _server_root_for_url(self, url_or_path): |
148 path = os.path.abspath(url_or_path) | 160 path = os.path.abspath(url_or_path) |
(...skipping 13 matching lines...) Expand all Loading... |
162 server_root = self._server_root_for_url(args.url_or_path) | 174 server_root = self._server_root_for_url(args.url_or_path) |
163 sky_server = SkyServer(SKY_SERVER_PORT, configuration, server_root, pack
ages_root) | 175 sky_server = SkyServer(SKY_SERVER_PORT, configuration, server_root, pack
ages_root) |
164 return sky_server | 176 return sky_server |
165 | 177 |
166 def run(self, args, pids): | 178 def run(self, args, pids): |
167 apk_path = os.path.join(args.build_dir, 'apks', APK_NAME) | 179 apk_path = os.path.join(args.build_dir, 'apks', APK_NAME) |
168 if not os.path.exists(apk_path): | 180 if not os.path.exists(apk_path): |
169 print "'%s' does not exist?" % apk_path | 181 print "'%s' does not exist?" % apk_path |
170 return 2 | 182 return 2 |
171 | 183 |
| 184 ensure_assets_are_downloaded(args.build_dir) |
| 185 |
172 packages_root = dev_packages_root(args.build_dir) | 186 packages_root = dev_packages_root(args.build_dir) |
173 sky_server = self._sky_server_for_args(args, packages_root) | 187 sky_server = self._sky_server_for_args(args, packages_root) |
174 pids['sky_server_pid'] = sky_server.start() | 188 pids['sky_server_pid'] = sky_server.start() |
175 pids['sky_server_port'] = sky_server.port | 189 pids['sky_server_port'] = sky_server.port |
176 pids['sky_server_root'] = sky_server.root | 190 pids['sky_server_root'] = sky_server.root |
177 | 191 |
178 pids['build_dir'] = os.path.abspath(args.build_dir) | 192 pids['build_dir'] = os.path.abspath(args.build_dir) |
179 | 193 |
180 if args.install: | 194 if args.install: |
181 # -r to replace an existing apk, -d to allow version downgrade. | 195 # -r to replace an existing apk, -d to allow version downgrade. |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 args = parser.parse_args() | 348 args = parser.parse_args() |
335 pids = Pids.read_from(PID_FILE_PATH, PID_FILE_KEYS) | 349 pids = Pids.read_from(PID_FILE_PATH, PID_FILE_KEYS) |
336 exit_code = args.func(args, pids) | 350 exit_code = args.func(args, pids) |
337 # We could do this with an at-exit handler instead? | 351 # We could do this with an at-exit handler instead? |
338 pids.write_to(PID_FILE_PATH) | 352 pids.write_to(PID_FILE_PATH) |
339 sys.exit(exit_code) | 353 sys.exit(exit_code) |
340 | 354 |
341 | 355 |
342 if __name__ == '__main__': | 356 if __name__ == '__main__': |
343 SkyShellRunner().main() | 357 SkyShellRunner().main() |
OLD | NEW |