diff options
author | David Riley <davidriley@google.com> | 2017-04-05 00:02:59 -0700 |
---|---|---|
committer | David Pursehouse <dpursehouse@collab.net> | 2017-05-29 13:39:54 +0900 |
commit | e0684addeeb920ddf83168d5fbbbe50cb9287abd (patch) | |
tree | 03a3dd940950463c0c88062d1fce2aae78708777 /main.py | |
parent | fef9f21b28d3b59804fdd5db2bbb86e797051dab (diff) | |
download | git-repo-e0684addeeb920ddf83168d5fbbbe50cb9287abd.tar.gz |
sync: Add support to dump a JSON event log of all sync events.
Change-Id: Id4852968ac1b2bf0093007cf2e5ca951ddab8b3b
Diffstat (limited to 'main.py')
-rwxr-xr-x | main.py | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -37,6 +37,7 @@ except ImportError: | |||
37 | kerberos = None | 37 | kerberos = None |
38 | 38 | ||
39 | from color import SetDefaultColoring | 39 | from color import SetDefaultColoring |
40 | import event_log | ||
40 | from trace import SetTrace | 41 | from trace import SetTrace |
41 | from git_command import git, GitCommand | 42 | from git_command import git, GitCommand |
42 | from git_config import init_ssh, close_ssh | 43 | from git_config import init_ssh, close_ssh |
@@ -85,6 +86,9 @@ global_options.add_option('--time', | |||
85 | global_options.add_option('--version', | 86 | global_options.add_option('--version', |
86 | dest='show_version', action='store_true', | 87 | dest='show_version', action='store_true', |
87 | help='display this version of repo') | 88 | help='display this version of repo') |
89 | global_options.add_option('--event-log', | ||
90 | dest='event_log', action='store', | ||
91 | help='filename of event log to append timeline to') | ||
88 | 92 | ||
89 | class _Repo(object): | 93 | class _Repo(object): |
90 | def __init__(self, repodir): | 94 | def __init__(self, repodir): |
@@ -176,6 +180,8 @@ class _Repo(object): | |||
176 | RunPager(config) | 180 | RunPager(config) |
177 | 181 | ||
178 | start = time.time() | 182 | start = time.time() |
183 | cmd_event = cmd.event_log.Add(name, event_log.TASK_COMMAND, start) | ||
184 | cmd.event_log.SetParent(cmd_event) | ||
179 | try: | 185 | try: |
180 | result = cmd.Execute(copts, cargs) | 186 | result = cmd.Execute(copts, cargs) |
181 | except (DownloadError, ManifestInvalidRevisionError, | 187 | except (DownloadError, ManifestInvalidRevisionError, |
@@ -203,7 +209,8 @@ class _Repo(object): | |||
203 | result = e.code | 209 | result = e.code |
204 | raise | 210 | raise |
205 | finally: | 211 | finally: |
206 | elapsed = time.time() - start | 212 | finish = time.time() |
213 | elapsed = finish - start | ||
207 | hours, remainder = divmod(elapsed, 3600) | 214 | hours, remainder = divmod(elapsed, 3600) |
208 | minutes, seconds = divmod(remainder, 60) | 215 | minutes, seconds = divmod(remainder, 60) |
209 | if gopts.time: | 216 | if gopts.time: |
@@ -213,6 +220,12 @@ class _Repo(object): | |||
213 | print('real\t%dh%dm%.3fs' % (hours, minutes, seconds), | 220 | print('real\t%dh%dm%.3fs' % (hours, minutes, seconds), |
214 | file=sys.stderr) | 221 | file=sys.stderr) |
215 | 222 | ||
223 | cmd.event_log.FinishEvent(cmd_event, finish, | ||
224 | result is None or result == 0) | ||
225 | if gopts.event_log: | ||
226 | cmd.event_log.Write(os.path.abspath( | ||
227 | os.path.expanduser(gopts.event_log))) | ||
228 | |||
216 | return result | 229 | return result |
217 | 230 | ||
218 | 231 | ||