Allow writing output to file instead of stdout.
diff --git a/tools/mkdoc.py b/tools/mkdoc.py
index c690aef..0757c80 100644
--- a/tools/mkdoc.py
+++ b/tools/mkdoc.py
@@ -230,7 +230,7 @@
job_semaphore.release()
-def mkdoc(args):
+def mkdoc(args, out_file=sys.stdout):
parameters = []
filenames = []
if "-x" not in args:
@@ -298,7 +298,7 @@
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
#endif
-''')
+''', file=out_file)
output.clear()
for filename in filenames:
@@ -319,18 +319,33 @@
name_prev = name
name_ctr = 1
print('\nstatic const char *%s =%sR"doc(%s)doc";' %
- (name, '\n' if '\n' in comment else ' ', comment))
+ (name, '\n' if '\n' in comment else ' ', comment), file=out_file)
print('''
#if defined(__GNUG__)
#pragma GCC diagnostic pop
#endif
-''')
+''', file=out_file)
if __name__ == '__main__':
+ args = sys.argv[1:]
+ out_path = None
+ for idx, arg in enumerate(args):
+ if arg.startswith("-o"):
+ args.remove(arg)
+ try:
+ out_path = arg[2:] or args.pop(idx)
+ except IndexError:
+ print("-o flag requires an argument")
+ exit(-1)
+ break
try:
- mkdoc(sys.argv[1:])
+ if out_path:
+ with open(out_path, 'w') as out_file:
+ mkdoc(args, out_file)
+ else:
+ mkdoc(args)
except NoFilenamesError:
print('Syntax: %s [.. a list of header files ..]' % sys.argv[0])
exit(-1)