summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-06-23 20:00:40 +0300
committerLars Wirzenius <liw@liw.fi>2018-06-23 20:00:40 +0300
commitd261df5e9ee42daf7f48f07863067cd397db7410 (patch)
tree5fd37381d71274b4a02164887572dfb621d1447b
parentb9f7f8a8132954347f0103a2d8eb8c4a81b20903 (diff)
downloadick2-d261df5e9ee42daf7f48f07863067cd397db7410.tar.gz
Add: script to exctract durtions of actions, build from build log
-rwxr-xr-xtimestamps67
1 files changed, 67 insertions, 0 deletions
diff --git a/timestamps b/timestamps
new file mode 100755
index 0000000..9c7b6fd
--- /dev/null
+++ b/timestamps
@@ -0,0 +1,67 @@
+#!/usr/bin/env python3
+
+
+import re
+import sys
+
+
+def getint(m, i):
+ return int(m.group(i))
+
+
+def parse_ts(ts):
+ m = re.match(r'(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)', ts)
+ assert m is not None
+ year = getint(m, 1)
+ month = getint(m, 2)
+ day = getint(m, 3)
+ hour = getint(m, 4)
+ minute = getint(m, 5)
+ second = getint(m, 6)
+ return hour * 3600 + minute * 60 + second
+
+
+build_starts = re.compile(r'^Build starts at (?P<ts>.*)$')
+build_ends = re.compile(r'^Build ends at (?P<ts>.*),')
+action_starts = re.compile(r'^Action starts at (?P<ts>.*):$')
+action_ends = re.compile(r'^Action ends at (?P<ts>.*),')
+patterns = [
+ build_starts,
+ build_ends,
+ action_starts,
+ action_ends,
+]
+
+pairs = {
+ build_starts: build_ends,
+ build_ends: build_starts,
+ action_starts: action_ends,
+ action_ends: action_starts,
+}
+
+started = {
+ build_starts: None,
+ action_starts: None,
+}
+
+names = {
+ build_starts: 'Build',
+ action_starts: 'Action',
+}
+
+durations = []
+
+for line in sys.stdin:
+ for pat in patterns:
+ m = pat.match(line)
+ if m is None:
+ continue
+ ts = m.group('ts')
+
+ if pat in started:
+ started[pat] = parse_ts(ts)
+ else:
+ ended = parse_ts(ts)
+ start_pat = pairs[pat]
+ print(names[start_pat], ended - started[start_pat])
+ break