Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 1 | #!/usr/bin/env python |
Jamie Gennis | d1270ce | 2012-05-06 13:27:13 -0700 | [diff] [blame] | 2 | |
Chris Craik | f516a62 | 2015-04-01 17:52:39 -0700 | [diff] [blame] | 3 | import codecs, httplib, json, optparse, os, urllib, shutil, subprocess, sys |
Jamie Gennis | d1270ce | 2012-05-06 13:27:13 -0700 | [diff] [blame] | 4 | |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 5 | output_html_file = 'systrace_trace_viewer.html' |
Jamie Gennis | d1270ce | 2012-05-06 13:27:13 -0700 | [diff] [blame] | 6 | |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 7 | upstream_git = 'https://github.com/google/trace-viewer.git' |
Jamie Gennis | 2da489c | 2012-09-19 18:06:29 -0700 | [diff] [blame] | 8 | |
| 9 | script_dir = os.path.dirname(os.path.abspath(sys.argv[0])) |
| 10 | trace_viewer_dir = os.path.join(script_dir, 'trace-viewer') |
| 11 | |
Jamie Gennis | 6907377 | 2012-09-20 12:14:58 -0700 | [diff] [blame] | 12 | parser = optparse.OptionParser() |
| 13 | parser.add_option('--local', dest='local_dir', metavar='DIR', |
| 14 | help='use a local trace-viewer') |
| 15 | parser.add_option('--no-min', dest='no_min', default=False, action='store_true', |
| 16 | help='skip minification') |
| 17 | options, args = parser.parse_args() |
Jamie Gennis | 2da489c | 2012-09-19 18:06:29 -0700 | [diff] [blame] | 18 | |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 19 | # Update the source if needed. |
Jamie Gennis | 6907377 | 2012-09-20 12:14:58 -0700 | [diff] [blame] | 20 | if options.local_dir is None: |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 21 | # Remove the old source tree. |
Jamie Gennis | 6907377 | 2012-09-20 12:14:58 -0700 | [diff] [blame] | 22 | shutil.rmtree(trace_viewer_dir, True) |
Jamie Gennis | 2da489c | 2012-09-19 18:06:29 -0700 | [diff] [blame] | 23 | |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 24 | # Pull the latest source from the upstream svn. |
| 25 | git_args = ['git', 'clone', upstream_git, trace_viewer_dir] |
| 26 | p = subprocess.Popen(git_args, stdout=subprocess.PIPE, cwd=script_dir) |
| 27 | p.communicate() |
| 28 | if p.wait() != 0: |
| 29 | print 'Failed to checkout source from upstream git.' |
Jamie Gennis | 6907377 | 2012-09-20 12:14:58 -0700 | [diff] [blame] | 30 | sys.exit(1) |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 31 | |
| 32 | shutil.rmtree(os.path.join(trace_viewer_dir, '.git'), True) |
Jamie Gennis | 6907377 | 2012-09-20 12:14:58 -0700 | [diff] [blame] | 33 | |
| 34 | # Update the UPSTREAM_REVISION file |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 35 | git_args = ['git', 'rev-parse', 'HEAD'] |
| 36 | p = subprocess.Popen(git_args, stdout=subprocess.PIPE, cwd=trace_viewer_dir) |
| 37 | out, err = p.communicate() |
| 38 | if p.wait() != 0: |
| 39 | print 'Failed to get revision.' |
| 40 | sys.exit(1) |
| 41 | |
| 42 | rev = out.strip() |
| 43 | with open('UPSTREAM_REVISION', 'wt') as f: |
| 44 | f.write(rev + '\n') |
Jamie Gennis | 6907377 | 2012-09-20 12:14:58 -0700 | [diff] [blame] | 45 | else: |
| 46 | trace_viewer_dir = options.local_dir |
Jamie Gennis | 2da489c | 2012-09-19 18:06:29 -0700 | [diff] [blame] | 47 | |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 48 | |
| 49 | # Generate the vulcanized result. |
| 50 | build_dir = os.path.join(trace_viewer_dir) |
Jamie Gennis | 2da489c | 2012-09-19 18:06:29 -0700 | [diff] [blame] | 51 | sys.path.append(build_dir) |
Jamie Gennis | d1270ce | 2012-05-06 13:27:13 -0700 | [diff] [blame] | 52 | |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 53 | from trace_viewer.build import vulcanize_trace_viewer |
Chris Craik | f516a62 | 2015-04-01 17:52:39 -0700 | [diff] [blame] | 54 | with codecs.open(output_html_file, encoding='utf-8', mode='w') as f: |
Chris Craik | 93216d0 | 2015-03-05 13:58:42 -0800 | [diff] [blame] | 55 | vulcanize_trace_viewer.WriteTraceViewer( |
| 56 | f, |
| 57 | config_name='systrace', |
| 58 | minify=(not options.no_min), |
| 59 | output_html_head_and_body=False) |
| 60 | print 'Generated %s' % output_html_file |