-
Notifications
You must be signed in to change notification settings - Fork 0
/
generate_names.py
54 lines (39 loc) · 1.09 KB
/
generate_names.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
44
45
46
47
48
49
50
51
52
53
54
import datetime
import sys
HEADER_FILE_TEMPLATE = """// Generated with {file} {date}.
#ifndef NAME_H
#define NAME_H
extern const char* NAME_names[];
typedef enum {{
{enums}}} NAME;
#endif // NAME_H
"""
C_FILE_TEMPLATE = """// Generated with {file} {date}.
const char* NAME_names[] = {{
{enums}}};
"""
def get_enums():
with open("names.txt", "r") as f:
return [e.strip() for e in f.readlines()[1:]]
def create_header_file(enums):
with open("name.h", "w+") as f:
f.writelines(
HEADER_FILE_TEMPLATE.format(
file=sys.argv[0],
date=datetime.datetime.now(),
enums="".join([f" {e},\n" for e in enums]),
)
)
def create_c_file(enums):
with open("name.c", "w+") as f:
f.writelines(
C_FILE_TEMPLATE.format(
file=sys.argv[0],
date=datetime.datetime.now(),
enums="".join([f' "{e}",\n' for e in enums]),
)
)
if __name__ == "__main__":
enums = get_enums()
create_header_file(enums)
create_c_file(enums)