From db90b23721da4042474cc09f5e672e6a55efd4c7 Mon Sep 17 00:00:00 2001 From: Ian Fischer Date: Thu, 3 Sep 2015 09:36:15 -0700 Subject: [PATCH] Add a clear flag for sky_tool logs on Android. --- sky/packages/sky/lib/sky_tool | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/sky/packages/sky/lib/sky_tool b/sky/packages/sky/lib/sky_tool index 54c7d4efb1a..44f16f4e736 100755 --- a/sky/packages/sky/lib/sky_tool +++ b/sky/packages/sky/lib/sky_tool @@ -151,6 +151,8 @@ class SkyLogs(object): def add_subparser(self, subparsers): logs_parser = subparsers.add_parser('logs', help='Show logs for running Sky apps') + logs_parser.add_argument('--clear', action='store_true', dest='clear_logs', + help='Clear log history before reading from logs (currently only implemented for Android)') logs_parser.set_defaults(func=self.run) def run(self, args, pids): @@ -160,13 +162,13 @@ class SkyLogs(object): android = AndroidDevice() if android.is_connected(): - android_log_reader = android.logs() + android_log_reader = android.logs(args.clear_logs) if IOSDevice.is_connected(): - ios_dev_log_reader = IOSDevice.logs() + ios_dev_log_reader = IOSDevice.logs(args.clear_logs) if IOSSimulator.is_connected(): - ios_sim_log_reader = IOSSimulator.logs() + ios_sim_log_reader = IOSSimulator.logs(args.clear_logs) if android_log_reader is not None: try: @@ -488,8 +490,17 @@ class AndroidDevice(object): logging.info(' '.join(cmd)) subprocess.check_output(cmd) - def logs(self): + def logs(self, clear=False): def do_logs(): + if clear: + cmd = [ + self.adb_path, + 'logcat', + '-c' + ] + logging.info(' '.join(cmd)) + subprocess.check_call(cmd) + cmd = [ self.adb_path, 'logcat', @@ -603,7 +614,7 @@ class IOSDevice(object): pass @classmethod - def logs(cls): + def logs(cls, clear=False): try: cmd = [ 'which', @@ -734,7 +745,7 @@ class IOSSimulator(object): return cls.is_booted() @classmethod - def logs(cls): + def logs(cls, clear=False): def do_logs(): cmd = [ 'tail',