avatar
b*s
1
#!/usr/bin/env /usr/bin/python3
import sys, os, argparse, shutil
templates_dir = os.path.expanduser('~') + '/templates/'
cwd = os.getcwd() + '/'
py_templates = ['empty.py']
cpp_templates = ['empty.h','empty.cpp']
test_templates = ['Makefile','main.cpp','helper.h','Test.cpp']
perf_templates = ['perf.h']
main_templates = ['entry.cpp']
make_templates = ['CMakeLists.txt']

def copy_templates(templates,name,affected,to_be_replaced,to_replace):
for file in templates:
if not os.path.isfile(templates_dir + file):
print('file',templates_dir + file,'is missing')
continue
final_name = file
if name is not None:
dummy , ext = os.path.splitext(file)
final_name = name + ext
shutil.copyfile(templates_dir + file,cwd + final_name)
# replace internal include
if affected == final_name:
lines = []
with open(cwd + final_name,'r') as cpp_file:
for line in cpp_file.readlines():
lines.append(line.replace(to_be_replaced,to_replace))
cpp_file.close()
with open(cwd + final_name,'w') as cpp_file:
for line in lines:
cpp_file.write(line)
cpp_file.close()

print('created',cwd + final_name)
def main():
parser = argparse.ArgumentParser()
parser.add_argument('mode',help='py - python script, test - unit tests,
cpp - cpp src files, main - main.cpp, perf - performance code')
parser.add_argument('--name', nargs='?',help='name to replace default
file base names')
args = parser.parse_args()
if args.mode == 'py':
copy_templates(py_templates,None,None,None,None)
return
if args.mode == 'test':
copy_templates(test_templates,None,'Makefile','CFG_DIR=../../..','
CFG_DIR=~/p4/main/Connectivity')
return
if args.mode == 'cpp':
copy_templates(cpp_templates,args.name,args.name + '.cpp','#include
"empty.h"','#include "' + args.name + '.h"')
return

if args.mode == 'perf':
copy_templates(perf_templates,None,None,None,None)
return

if args.mode == 'make':
if args.name is None:
args.name = 'empty'
copy_templates(make_templates,None,'CMakeLists.txt','empty',args.
name)
return
if args.mode == 'main':
if args.name is None:
args.name = 'empty'
copy_templates(main_templates,'main','main.cpp','empty',args.name)
return
if __name__ == '__main__':
main()
avatar
b*s
2
#!/usr/bin/env /usr/bin/python3
import sys, os, argparse, shutil
templates_dir = os.path.expanduser('~') + '/templates/'
cwd = os.getcwd() + '/'
py_templates = ['empty.py']
cpp_templates = ['empty.h','empty.cpp']
test_templates = ['Makefile','main.cpp','helper.h','Test.cpp']
perf_templates = ['perf.h']
main_templates = ['entry.cpp']
make_templates = ['CMakeLists.txt']

def copy_templates(templates,name,affected,to_be_replaced,to_replace):
for file in templates:
if not os.path.isfile(templates_dir + file):
print('file',templates_dir + file,'is missing')
continue
final_name = file
if name is not None:
dummy , ext = os.path.splitext(file)
final_name = name + ext
shutil.copyfile(templates_dir + file,cwd + final_name)
# replace internal include
if affected == final_name:
lines = []
with open(cwd + final_name,'r') as cpp_file:
for line in cpp_file.readlines():
lines.append(line.replace(to_be_replaced,to_replace))
cpp_file.close()
with open(cwd + final_name,'w') as cpp_file:
for line in lines:
cpp_file.write(line)
cpp_file.close()

print('created',cwd + final_name)
def main():
parser = argparse.ArgumentParser()
parser.add_argument('mode',help='py - python script, test - unit tests,
cpp - cpp src files, main - main.cpp, perf - performance code')
parser.add_argument('--name', nargs='?',help='name to replace default
file base names')
args = parser.parse_args()
if args.mode == 'py':
copy_templates(py_templates,None,None,None,None)
return
if args.mode == 'test':
copy_templates(test_templates,None,'Makefile','CFG_DIR=../../..','
CFG_DIR=~/p4/main/Connectivity')
return
if args.mode == 'cpp':
copy_templates(cpp_templates,args.name,args.name + '.cpp','#include
"empty.h"','#include "' + args.name + '.h"')
return

if args.mode == 'perf':
copy_templates(perf_templates,None,None,None,None)
return

if args.mode == 'make':
if args.name is None:
args.name = 'empty'
copy_templates(make_templates,None,'CMakeLists.txt','empty',args.
name)
return
if args.mode == 'main':
if args.name is None:
args.name = 'empty'
copy_templates(main_templates,'main','main.cpp','empty',args.name)
return
if __name__ == '__main__':
main()
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。