45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
import os, sys
|
||
|
import re
|
||
|
|
||
|
if len(sys.argv) < 5:
|
||
|
print 'Usage: formatter.py <section name> <result-dir> <repo> <tid>'
|
||
|
sys.exit()
|
||
|
|
||
|
tid_regex = re.compile('([a-z0-9]+)-.*')
|
||
|
lab_title = re.compile('=* (lab[0-9]) =*')
|
||
|
test_entry_title = re.compile('^([\w][\w -]+)(:.*)')
|
||
|
|
||
|
section = sys.argv[1]
|
||
|
result_dir = sys.argv[2]
|
||
|
repo = sys.argv[3]
|
||
|
tid = sys.argv[4]
|
||
|
m = tid_regex.match(tid)
|
||
|
if not m:
|
||
|
print 'Invalid tid'
|
||
|
sys.exit()
|
||
|
commit = m.group(1)
|
||
|
|
||
|
lab = ''
|
||
|
while True:
|
||
|
l = sys.stdin.readline()
|
||
|
if not l:
|
||
|
break
|
||
|
line = l.rstrip('\n')
|
||
|
output = line
|
||
|
m = test_entry_title.match(line)
|
||
|
if m and lab:
|
||
|
test_entry = m.group(1).lower().replace(' ', '_')
|
||
|
test_log = os.path.join(result_dir, repo, commit, lab, test_entry + ".error")
|
||
|
if os.path.exists(test_log):
|
||
|
rest = m.group(2)
|
||
|
output = '<a href="/repo/' + '/'.join([repo, commit, lab, test_entry]) + '">' + m.group(1) + '</a>' + rest
|
||
|
m = lab_title.match(line)
|
||
|
if m:
|
||
|
lab = m.group(1)
|
||
|
|
||
|
sys.stdout.write(output + '<br>')
|
||
|
|
||
|
sys.stdout.flush()
|