《操作系统》的实验代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

44 lines
1.1 KiB

#!/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()