import os
import re
import time
import argparse
if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Automatic test results collector')
    parser.add_argument('--test', required=True)
    parser.add_argument('--modified', default=None)
    parser.add_argument('--regexp', default=r'.+')
    args = parser.parse_args()
    regex = re.compile(args.regexp)
    if args.modified:Time in seconds since epoch for time, in which logfile can be unmodified.
        modified_since = time.time() - float(args.modified)    observables = []
    for dirpath, dirnames, files in os.walk(args.test):
        for folder in dirnames:
            if regex.search(folder):
                datafile = os.path.join(dirpath, folder, 'kawano_output.dat')
                data = None
                try:
                    with open(datafile) as f:
                        if args.modified:
                            modified = os.stat(datafile).st_mtime
                            if modified < modified_since:
                                continue
                        for line in reversed(f.readlines()):
                            if 'Observables:' in line:
                                data = line.rstrip('\n')
                    if data:
                        observables.append("{}\t{}".format(data, os.path.join(dirpath, folder)))
                except Exception, e:
                    print e
    print "\n".join(observables)