mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-03-26 04:24:20 +03:00
64 lines
1.3 KiB
Python
Executable File
64 lines
1.3 KiB
Python
Executable File
#! /usr/bin/env python
|
|
"""A script to stitch together the generated text files in the correct order.
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
def main():
|
|
if len(sys.argv) != 3:
|
|
sys.stderr.write("usage: %s index.rst text-dir\n")
|
|
return 2
|
|
|
|
_, index, txt_dir = sys.argv
|
|
|
|
for fb in iter_file_base(index):
|
|
emit(fb, txt_dir)
|
|
|
|
return 0
|
|
|
|
def iter_file_base(fn):
|
|
f = open(fn)
|
|
if sys.version_info[0] >= 3:
|
|
have_line = iter(f).__next__
|
|
else:
|
|
have_line = iter(f).next
|
|
|
|
while not have_line().startswith('.. toctree'):
|
|
pass
|
|
while have_line().strip().startswith(':'):
|
|
pass
|
|
|
|
yield os.path.splitext(os.path.basename(fn))[0]
|
|
|
|
n = 0
|
|
while True:
|
|
line = have_line()
|
|
if line.isspace():
|
|
continue
|
|
if line.startswith(".."):
|
|
break
|
|
n += 1
|
|
yield line.strip()
|
|
|
|
f.close()
|
|
|
|
if n < 5:
|
|
# maybe format changed?
|
|
raise Exception("Not enough files found. Format change in index.rst?")
|
|
|
|
def emit(basename, txt_dir):
|
|
f = open(os.path.join(txt_dir, basename + ".txt"))
|
|
for line in f:
|
|
line = line.replace("``", "'")
|
|
sys.stdout.write(line)
|
|
f.close()
|
|
|
|
# some space between sections
|
|
sys.stdout.write("\n\n")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|
|
|