Add comments for file start/end

This commit is contained in:
Luchs
2015-04-16 13:17:38 +02:00
parent 9bcf31e14d
commit c44be6418b

View File

@ -1,28 +1,31 @@
#!/usr/bin/env python #!/usr/bin/env python
import sys import sys
import os.path from os.path import basename, dirname, join
import re import re
INCLUDE_PATTERN = re.compile(r'^\s*#include "([\w.]+)"') INCLUDE_PATTERN = re.compile(r'^\s*#include "([\w.]+)"')
seen_files = set() seen_files = set()
out = sys.stdout
def add_file(filename): def add_file(filename):
basename = os.path.basename(filename) bname = basename(filename)
# Only include each file at most once. # Only include each file at most once.
if basename in seen_files: if bname in seen_files:
return return
seen_files.add(basename) seen_files.add(bname)
path = os.path.dirname(filename) path = dirname(filename)
out.write('// Begin file "{0}"\n'.format(filename))
with open(filename, 'r') as f: with open(filename, 'r') as f:
for line in f: for line in f:
m = INCLUDE_PATTERN.match(line) m = INCLUDE_PATTERN.match(line)
if m: if m:
add_file(os.path.join(path, m.group(1))) add_file(join(path, m.group(1)))
else: else:
sys.stdout.write(line) out.write(line)
out.write('// End file "{0}"\n'.format(filename))
for f in sys.argv[1:]: for f in sys.argv[1:]:
add_file(f) add_file(f)