Mercurial > evolve
view docs/test2rst.py @ 1308:676d88a82d4a stable
evolve: improve transaction related code to use the lock module
Refactored some of the places where we are using locking in evolve to use
the lock module and write less code.
This should also fix a couple of bug where tr could be None at release time.
author | Laurent Charignon <lcharignon@fb.com> |
---|---|
date | Thu, 30 Apr 2015 14:47:01 -0700 |
parents | a0327c78a5d3 |
children | 94fe2cc9cd41 |
line wrap: on
line source
#!/usr/bin/env python import os, os.path as op, re, sys # line starts with two chars one of which is not a space (and both are not # newlines obviously) and ends with one or more newlines followed by two spaces # on a next line (indented text) CODEBLOCK = re.compile(r'()\n(([^ \n][^\n]|[^\n][^ \n])[^\n]*)\n+ ') INDEX = ''' Mercurial tests =============== .. toctree:: :maxdepth: 1 ''' def rstify(orig, name): header = '%s\n%s\n\n' % (name, '=' * len(name)) content = header + orig content = CODEBLOCK.sub(r'\n\1\n\n::\n\n ', content) return content def main(base): if os.path.isdir(base): one_dir(base) else: one_file(base) def one_dir(base): index = INDEX #doc = lambda x: op.join(op.dirname(__file__), 'docs', x) for fn in sorted(os.listdir(base)): if not fn.endswith('.t'): continue name = os.path.splitext(fn)[0] content = one_file(op.join(base, fn)) target = op.join(base, name + '.rst') #with file(doc(name + '.rst'), 'w') as f: with file(target, 'w') as f: f.write(content) index += '\n ' + name #with file(doc('index.rst'), 'w') as f: # f.write(index) def one_file(path): name = os.path.basename(path)[:-2] return rstify(file(path).read(), name) if __name__ == '__main__': if len(sys.argv) != 2: print 'Please supply a path to tests dir as parameter' sys.exit() main(sys.argv[1])