vim/compiler/cake-test-wrapper.py @ 3d37ca22c5c5 bpollack/use-command-to-explicitly-call-ag-and-us-1442506830050

Use command to explicitly call ag, and use compound if block
author Benjamin Pollack <benjamin@bitquabit.com>
date Thu, 17 Sep 2015 16:20:42 +0000
parents e86cb5d0cd4d
children (none)
#!/usr/bin/env python

import os, subprocess

def parse_filename(l):
    ns = l.split(' ', 3)[-1].rsplit('/', 1)[0]
    return os.path.join('./test', *ns.split('.')) + '.clj'

def process_error(fn, l, lines):
    lnum = int(l.rsplit(' ', 1)[-1].split(':')[-1])

    message = lines.pop(0)

    print '%s:%d:%s' % (fn, lnum, message)

    return message

if __name__ == '__main__':
    out = subprocess.check_output(r"cake test | perl -pe 's/\e\[?.*?[\@-~]//g'", shell=True)

    prev = ""
    fn = None
    lines = out.splitlines()
    while lines:
        l = lines.pop(0)
        if l.startswith('cake test ') and '/' in l:
            fn = parse_filename(l)

        if l.startswith('FAIL!'):
            prev = process_error(fn, l, lines)
        else:
            prev = l