blob: 770fa6c3a1471bc250bda409f9c9e4999e5e0b6b [file] [log] [blame]
Chris Craikb122baf2015-03-05 13:58:42 -08001#!/usr/bin/env python
Jamie Gennisd1270ce2012-05-06 13:27:13 -07002
Chris Craikb122baf2015-03-05 13:58:42 -08003import codecs, httplib, json, optparse, os, urllib, shutil, subprocess, sys
Jamie Gennisd1270ce2012-05-06 13:27:13 -07004
Chris Craikb122baf2015-03-05 13:58:42 -08005output_html_file = 'systrace_trace_viewer.html'
Jamie Gennisd1270ce2012-05-06 13:27:13 -07006
Chris Craikb122baf2015-03-05 13:58:42 -08007upstream_git = 'https://github.com/google/trace-viewer.git'
Jamie Gennis2da489c2012-09-19 18:06:29 -07008
9script_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
10trace_viewer_dir = os.path.join(script_dir, 'trace-viewer')
11
Jamie Gennis69073772012-09-20 12:14:58 -070012parser = optparse.OptionParser()
13parser.add_option('--local', dest='local_dir', metavar='DIR',
14 help='use a local trace-viewer')
15parser.add_option('--no-min', dest='no_min', default=False, action='store_true',
16 help='skip minification')
17options, args = parser.parse_args()
Jamie Gennis2da489c2012-09-19 18:06:29 -070018
Chris Craikb122baf2015-03-05 13:58:42 -080019# Update the source if needed.
Jamie Gennis69073772012-09-20 12:14:58 -070020if options.local_dir is None:
Chris Craikb122baf2015-03-05 13:58:42 -080021 # Remove the old source tree.
Jamie Gennis69073772012-09-20 12:14:58 -070022 shutil.rmtree(trace_viewer_dir, True)
Jamie Gennis2da489c2012-09-19 18:06:29 -070023
Chris Craikbeca7ae2015-04-07 13:29:55 -070024 # Pull the latest source from the upstream git.
Chris Craikb122baf2015-03-05 13:58:42 -080025 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 Gennis69073772012-09-20 12:14:58 -070030 sys.exit(1)
31
Chris Craikad0b04f2015-07-21 13:44:22 -070032 trace_viewer_git_dir = os.path.join(trace_viewer_dir, '.git')
Jamie Gennis69073772012-09-20 12:14:58 -070033 # Update the UPSTREAM_REVISION file
Chris Craikb122baf2015-03-05 13:58:42 -080034 git_args = ['git', 'rev-parse', 'HEAD']
Chris Craikad0b04f2015-07-21 13:44:22 -070035 p = subprocess.Popen(git_args,
36 stdout=subprocess.PIPE,
37 cwd=trace_viewer_dir,
38 env={"GIT_DIR":trace_viewer_git_dir})
Chris Craikb122baf2015-03-05 13:58:42 -080039 out, err = p.communicate()
40 if p.wait() != 0:
41 print 'Failed to get revision.'
42 sys.exit(1)
43
Chris Craikad0b04f2015-07-21 13:44:22 -070044 shutil.rmtree(trace_viewer_git_dir, True)
45
Chris Craikb122baf2015-03-05 13:58:42 -080046 rev = out.strip()
47 with open('UPSTREAM_REVISION', 'wt') as f:
48 f.write(rev + '\n')
Jamie Gennis69073772012-09-20 12:14:58 -070049else:
50 trace_viewer_dir = options.local_dir
Jamie Gennis2da489c2012-09-19 18:06:29 -070051
Chris Craikb122baf2015-03-05 13:58:42 -080052
53# Generate the vulcanized result.
54build_dir = os.path.join(trace_viewer_dir)
Jamie Gennis2da489c2012-09-19 18:06:29 -070055sys.path.append(build_dir)
Jamie Gennisd1270ce2012-05-06 13:27:13 -070056
Chris Craikb2cbf152015-07-28 16:26:29 -070057from tracing.build import vulcanize_trace_viewer
Chris Craikb122baf2015-03-05 13:58:42 -080058with codecs.open(output_html_file, encoding='utf-8', mode='w') as f:
59 vulcanize_trace_viewer.WriteTraceViewer(
60 f,
61 config_name='systrace',
62 minify=(not options.no_min),
63 output_html_head_and_body=False)
64print 'Generated %s' % output_html_file