tests/heredoctest.py
author Laurent Charignon <lcharignon@fb.com>
Tue, 24 Mar 2015 14:24:55 -0700
changeset 24518 dd5e56f08d13
parent 22565 8d45a42b0c0f
child 25032 1db2127d2373
permissions -rw-r--r--
revset: add hook after tree parsing This will be useful to execute actions after the tree is parsed and before the revset returns a match. Finding symbols in the parse tree will later allow hashes of hidden revisions to work on the command line without the --hidden flag.

import sys

globalvars = {}
lines = sys.stdin.readlines()
while lines:
    l = lines.pop(0)
    if l.startswith('SALT'):
        print l[:-1]
    elif l.startswith('>>> '):
        snippet = l[4:]
        while lines and lines[0].startswith('... '):
            l = lines.pop(0)
            snippet += l[4:]
        c = compile(snippet, '<heredoc>', 'single')
        try:
            exec c in globalvars
        except Exception, inst:
            print repr(inst)