diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-06-23 20:00:40 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-06-23 20:00:40 +0300 |
commit | d261df5e9ee42daf7f48f07863067cd397db7410 (patch) | |
tree | 5fd37381d71274b4a02164887572dfb621d1447b /timestamps | |
parent | b9f7f8a8132954347f0103a2d8eb8c4a81b20903 (diff) | |
download | ick2-d261df5e9ee42daf7f48f07863067cd397db7410.tar.gz |
Add: script to exctract durtions of actions, build from build log
Diffstat (limited to 'timestamps')
-rwxr-xr-x | timestamps | 67 |
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 |