Add a new analyze command to shelldb to run the dart analyzer

This just makes it easier to run with the correct flags.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/982093003
This commit is contained in:
Eric Seidel 2015-03-05 11:28:57 -08:00
parent e3812af9c0
commit e7335d39f4

View File

@ -143,7 +143,7 @@ class StartSky(object):
pids['sky_server_port'] = sky_server.port
pids['sky_server_root'] = sky_server.root
pids['build_dir'] = args.build_dir
pids['build_dir'] = os.path.abspath(args.build_dir)
subprocess.check_call([ADB_PATH, 'install', '-r', apk_path])
@ -189,6 +189,35 @@ class StopSky(object):
pids.clear()
class Analyze(object):
def add_subparser(self, subparsers):
analyze_parser = subparsers.add_parser('analyze',
help=('run the dart analyzer with sky url mappings'))
analyze_parser.add_argument('app_path', type=str)
analyze_parser.set_defaults(func=self.run)
def run(self, args, pids):
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')
sky_core_path = os.path.join(bindings_path, 'sky_core.dart')
mojo_bindings_path = \
os.path.join(SRC_ROOT, 'mojo/public/dart/bindings.dart')
mojo_core_path = os.path.join(SRC_ROOT, 'mojo/public/dart/core.dart')
analyzer_args = [ANALYZER_PATH,
# sky_core.dart does not compile cleanly yet. :(
# "--url-mapping=dart:sky,%s" % sky_core_path,
"--url-mapping=dart:sky_builtin,%s" % sky_builtin_path,
"--url-mapping=mojo:bindings,%s" % mojo_bindings_path,
"--url-mapping=mojo:core,%s" % mojo_core_path,
args.app_path
]
subprocess.call(analyzer_args)
class SkyShellRunner(object):
def main(self):
logging.basicConfig(level=logging.WARNING)
@ -196,7 +225,7 @@ class SkyShellRunner(object):
parser = argparse.ArgumentParser(description='Sky Shell Runner')
subparsers = parser.add_subparsers(help='sub-command help')
for command in [StartSky(), StopSky()]:
for command in [StartSky(), StopSky(), Analyze()]:
command.add_subparser(subparsers)
args = parser.parse_args()