blob: 4125eee0cfdb69067e7c6545c9a8efe9db6f64ff [file] [log] [blame]
Dennis Kempin351024d2013-02-06 11:18:21 -08001#! /usr/bin/env python
2# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
Dennis Kempinb049d542013-06-13 13:55:18 -07006from mtedit import MTEdit
7from mtlib import Log
Dennis Kempin13d948e2014-04-18 11:23:32 -07008from mtlib.feedback import FeedbackDownloader
Dennis Kempin351024d2013-02-06 11:18:21 -08009from optparse import OptionParser
10import sys
11
12
Dennis Kempin136b7322013-02-06 13:20:57 -080013usage = """Multitouch Editor Usage Examples:
Dennis Kempin351024d2013-02-06 11:18:21 -080014
15Viewing logs:
16$ %prog filename.log (from file)
17$ %prog 172.22.75.0 (from device ip address)
18$ %prog http://feedback.google.com/... (from feedback report url)
19
20Edit log and save result into output.log:
21$ %prog log -o output.log
22
23Download log and save without editing:
24$ %prog log -d -o output.log"""
25
26
27def main(argv):
28 parser = OptionParser(usage=usage)
Dennis Kempin17766a62013-06-17 14:09:33 -070029 parser.add_option('-o',
30 dest='out', default=None,
31 help='set target filename for storing results',
32 metavar='output.log')
33 parser.add_option('-d', '--download',
34 dest='download', action='store_true', default=False,
35 help='download file only, don\'t edit.')
36 parser.add_option('-e', '--evdev',
37 dest='evdev', default=None,
38 help='path to local evdev log file')
39 parser.add_option('-n', '--new',
40 dest='new', action='store_true', default=False,
41 help='Create new device logs before downloading. '+
42 '[Default: False]')
43 parser.add_option('-p', '--persistent',
44 dest='persistent', action='store_true', default=False,
45 help='Keep server alive until killed in the terminal '+
46 'via CTRL-C [Default: False]')
47 parser.add_option('-s', '--serve',
48 dest='serve', action='store_true', default=False,
49 help='Serve a standalone MTEdit.')
50 parser.add_option('-c', '--screenshot',
51 dest='screenshot', action='store_true', default=False,
52 help='Force an attempt to find and download a screenshot.')
Dennis Kempin13d948e2014-04-18 11:23:32 -070053 parser.add_option('--login',
54 dest='login', action='store_true', default=False,
55 help='Force (re-)login to feedback.corp.google.com')
Dennis Kempin351024d2013-02-06 11:18:21 -080056 (options, args) = parser.parse_args()
57
Dennis Kempinb049d542013-06-13 13:55:18 -070058 editor = MTEdit(persistent=options.persistent)
Dennis Kempin351024d2013-02-06 11:18:21 -080059
60 if options.serve:
61 editor.Serve()
62 return
63
Dennis Kempin13d948e2014-04-18 11:23:32 -070064 if options.login:
65 FeedbackDownloader(force_login=True)
66
Dennis Kempin351024d2013-02-06 11:18:21 -080067 if len(args) != 1:
68 parser.print_help()
69 exit(-1)
70
71 log = Log(args[0], options)
72
73 if options.download:
74 if not options.out:
Dennis Kempin17766a62013-06-17 14:09:33 -070075 print '--download requires -o to be set.'
Dennis Kempin351024d2013-02-06 11:18:21 -080076 exit(-1)
77 log.SaveAs(options.out)
78 else:
79 if options.out is None:
80 editor.View(log)
81 else:
82 log = editor.Edit(log)
Dennis Kempin58d9a742014-05-08 18:34:59 -070083 if log:
84 log.SaveAs(options.out)
Dennis Kempin351024d2013-02-06 11:18:21 -080085
WeiNan-Peter, Wen9aab26a2013-05-13 09:32:29 -040086 log.CleanUp()
87
88
Dennis Kempin17766a62013-06-17 14:09:33 -070089if __name__ == '__main__':
Dennis Kempin351024d2013-02-06 11:18:21 -080090 main(sys.argv)