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

Side by Side Diff: sky/tools/shelldb

Issue 982093003: Add a new analyze command to shelldb to run the dart analyzer (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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 | no next file » | 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 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 apk_path = os.path.join(args.build_dir, 'apks', APK_NAME) 136 apk_path = os.path.join(args.build_dir, 'apks', APK_NAME)
137 if not os.path.exists(apk_path): 137 if not os.path.exists(apk_path):
138 print "'%s' does not exist?" % apk_path 138 print "'%s' does not exist?" % apk_path
139 return 2 139 return 2
140 140
141 sky_server = self._sky_server_for_args(args) 141 sky_server = self._sky_server_for_args(args)
142 pids['sky_server_pid'] = sky_server.start() 142 pids['sky_server_pid'] = sky_server.start()
143 pids['sky_server_port'] = sky_server.port 143 pids['sky_server_port'] = sky_server.port
144 pids['sky_server_root'] = sky_server.root 144 pids['sky_server_root'] = sky_server.root
145 145
146 pids['build_dir'] = args.build_dir 146 pids['build_dir'] = os.path.abspath(args.build_dir)
147 147
148 subprocess.check_call([ADB_PATH, 'install', '-r', apk_path]) 148 subprocess.check_call([ADB_PATH, 'install', '-r', apk_path])
149 149
150 port_string = 'tcp:%s' % sky_server.port 150 port_string = 'tcp:%s' % sky_server.port
151 subprocess.check_call([ 151 subprocess.check_call([
152 ADB_PATH, 'reverse', port_string, port_string 152 ADB_PATH, 'reverse', port_string, port_string
153 ]) 153 ])
154 pids['remote_sky_server_port'] = sky_server.port 154 pids['remote_sky_server_port'] = sky_server.port
155 155
156 subprocess.check_call([ADB_PATH, 'shell', 156 subprocess.check_call([ADB_PATH, 'shell',
(...skipping 25 matching lines...) Expand all
182 if 'remote_sky_server_port' in self.pids: 182 if 'remote_sky_server_port' in self.pids:
183 port_string = 'tcp:%s' % self.pids['remote_sky_server_port'] 183 port_string = 'tcp:%s' % self.pids['remote_sky_server_port']
184 subprocess.call([ADB_PATH, 'reverse', '--remove', port_string]) 184 subprocess.call([ADB_PATH, 'reverse', '--remove', port_string])
185 185
186 subprocess.call([ 186 subprocess.call([
187 ADB_PATH, 'shell', 'am', 'force-stop', ANDROID_PACKAGE]) 187 ADB_PATH, 'shell', 'am', 'force-stop', ANDROID_PACKAGE])
188 188
189 pids.clear() 189 pids.clear()
190 190
191 191
192 class Analyze(object):
193 def add_subparser(self, subparsers):
194 analyze_parser = subparsers.add_parser('analyze',
195 help=('run the dart analyzer with sky url mappings'))
196 analyze_parser.add_argument('app_path', type=str)
197 analyze_parser.set_defaults(func=self.run)
198
199 def run(self, args, pids):
200 ANALYZER_PATH = 'third_party/dart-sdk/dart-sdk/bin/dartanalyzer'
201
202 build_dir = os.path.abspath(pids['build_dir'])
203 bindings_path = os.path.join(build_dir, 'gen/sky/bindings')
204 sky_builtin_path = \
205 os.path.join(SRC_ROOT, 'sky/engine/bindings/builtin.dart')
206 sky_core_path = os.path.join(bindings_path, 'sky_core.dart')
207 mojo_bindings_path = \
208 os.path.join(SRC_ROOT, 'mojo/public/dart/bindings.dart')
209 mojo_core_path = os.path.join(SRC_ROOT, 'mojo/public/dart/core.dart')
210 analyzer_args = [ANALYZER_PATH,
211 # sky_core.dart does not compile cleanly yet. :(
212 # "--url-mapping=dart:sky,%s" % sky_core_path,
213 "--url-mapping=dart:sky_builtin,%s" % sky_builtin_path,
214 "--url-mapping=mojo:bindings,%s" % mojo_bindings_path,
215 "--url-mapping=mojo:core,%s" % mojo_core_path,
216 args.app_path
217 ]
218 print " ".join(analyzer_args)
abarth-chromium 2015/03/05 19:28:06 Remove?
219 subprocess.call(analyzer_args)
220
221
192 class SkyShellRunner(object): 222 class SkyShellRunner(object):
193 def main(self): 223 def main(self):
194 logging.basicConfig(level=logging.WARNING) 224 logging.basicConfig(level=logging.WARNING)
195 225
196 parser = argparse.ArgumentParser(description='Sky Shell Runner') 226 parser = argparse.ArgumentParser(description='Sky Shell Runner')
197 subparsers = parser.add_subparsers(help='sub-command help') 227 subparsers = parser.add_subparsers(help='sub-command help')
198 228
199 for command in [StartSky(), StopSky()]: 229 for command in [StartSky(), StopSky(), Analyze()]:
200 command.add_subparser(subparsers) 230 command.add_subparser(subparsers)
201 231
202 args = parser.parse_args() 232 args = parser.parse_args()
203 pids = Pids.read_from(PID_FILE_PATH, PID_FILE_KEYS) 233 pids = Pids.read_from(PID_FILE_PATH, PID_FILE_KEYS)
204 exit_code = args.func(args, pids) 234 exit_code = args.func(args, pids)
205 # We could do this with an at-exit handler instead? 235 # We could do this with an at-exit handler instead?
206 pids.write_to(PID_FILE_PATH) 236 pids.write_to(PID_FILE_PATH)
207 sys.exit(exit_code) 237 sys.exit(exit_code)
208 238
209 239
210 if __name__ == '__main__': 240 if __name__ == '__main__':
211 SkyShellRunner().main() 241 SkyShellRunner().main()
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698