Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(648)

Side by Side Diff: sky/tools/shelldb

Issue 1131373005: Have shelldb and skydb automatically download assets for you (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | sky/tools/skydb » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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()
OLDNEW
« no previous file with comments | « no previous file | sky/tools/skydb » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698