Skip to content

Commit 14c4681

Browse files
authored
Merge pull request #48 from mROS-base/argparse
use argparse to specify file(s) to generate template.hpp
2 parents 4c4a97d + c446669 commit 14c4681

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

mros2_header_generator/templates_generator.py

+19-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import os
22
import sys
33
import re
4+
import argparse
45
from os import path
56
from jinja2 import Environment, FileSystemLoader
67

7-
arg = sys.argv
8-
app = arg[1]
9-
108
includeFiles = []
119
pubMsgTypes = []
1210
subMsgTypes = []
@@ -15,7 +13,21 @@ def toSnakeCase(string):
1513
return re.sub("(.[A-Z])",lambda x:x.group(1)[0] + "_" +x.group(1)[1],string).lower()
1614

1715
def main():
18-
with open(app + "/app.cpp", 'r') as m_f:
16+
print('Generate template.hpp from mros2 app code file.')
17+
18+
parser = argparse.ArgumentParser(description='Generate template.hpp from mros2 app code file.')
19+
parser.add_argument('--outdir', default='.',
20+
help='directry name to output template.hpp (default: \'.\' (current dir))')
21+
parser.add_argument('--file', nargs='*', type=str, default=['app.cpp'],
22+
help='filename(s) of mros2 app code (default: \'app.cpp\')')
23+
24+
args = parser.parse_args()
25+
outdir = args.outdir
26+
file = args.file
27+
28+
for f in file:
29+
print(' Analyzing \'{}\' to generate...'.format(f))
30+
with open(f, 'r') as m_f:
1931
arr = m_f.readlines()
2032
for m_line in arr:
2133
if "create_publisher" in m_line:
@@ -41,8 +53,10 @@ def main():
4153
env = Environment(loader=FileSystemLoader(path.dirname(__file__)))
4254
template = env.get_template('templates.tpl')
4355
datatext = template.render({ "includeFiles":includeFiles, "pubMsgTypes":pubMsgTypes, "subMsgTypes":subMsgTypes })
44-
with open(os.path.join(app+"/templates.hpp"), "wb") as f:
56+
with open(os.path.join(outdir + "/templates.hpp"), "wb") as f:
4557
f.write(datatext.encode('utf-8'))
4658

59+
print('Generate {}/template.hpp done.'.format(outdir))
60+
4761
if __name__ == "__main__":
4862
main()

0 commit comments

Comments
 (0)