#!/usr/bin/env python

import re
import optparse

def main():
    parser = optparse.OptionParser("""\
usage: %prog [options] <path>

Reads the file at the given path and extracts any "program times" as used by the
LLVM test-suite Makefiles.""")
    opts,args = parser.parse_args()
    if len(args) != 1:
        parser.error('invalid number of arguments')
       
    file = open(args[0])
    try:
       re_pattern = re.compile(r"program ([0-9]+\.[0-9]+)")

       data = file.read()
       for match in re_pattern.finditer(data):
          print match.group(1)
    finally:
       file.close()

if __name__ == '__main__':
   main()
