-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathgenerator.py
43 lines (34 loc) · 920 Bytes
/
generator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import os
def include(header, incs, root, included):
file = open("include/" + root, "r")
for line in file:
if line == "#pragma once\n" or line == "\n":
pass
elif line[:10] == "#include \"":
if not line in included:
included += [line]
include(header, incs, line[10:-2], included)
elif line[:10] == "#include <":
incs += [line]
else:
header.write(line)
break
for line in file:
header.write(line)
header.write("\n")
return included, incs
def main():
header = open("temp", "w")
included, incs = include(header, [], "sql/schema.hpp", [])
included, incs = include(header, incs, "sql/query.hpp", included)
header.close()
header = open("single-header/sql.hpp", "w")
header.write("#pragma once\n\n")
for line in sorted(set(incs)):
header.write(line)
header.write("\n")
for line in open("temp"):
header.write(line)
os.remove("temp")
if __name__ == "__main__":
main()