Cleaned python scripts

This commit is contained in:
Fabien Poussin 2020-04-08 20:27:19 +02:00
parent 5a124c7e36
commit f6bf7f5f95
3 changed files with 57 additions and 52 deletions

View File

@ -3,7 +3,7 @@
__author__ = 'Fabien Poussin'
__version__ = '0.1'
from os.path import expanduser, sep, dirname, abspath
from os.path import dirname, abspath
from argparse import ArgumentParser
import re

View File

@ -4,21 +4,19 @@ __author__ = 'Fabien Poussin'
__version__ = '0.1'
import os
import re
from argparse import ArgumentParser
from traceback import print_exc
from shutil import copy
parser = ArgumentParser(description='Generate ChibiOS-Contrib config and Makefiles from ChibiOS')
parser.add_argument('-s', '--src', default='../../ChibiOS', type=str, help="ChibiOS folder")
parser.add_argument('-d', '--dst', default='..', type=str, help='ChibiOS-Contrib folder')
FOLDERS = ['testhal']
def makefile(lines):
for l in range(len(lines)):
if 'CHIBIOS =' in lines[l]:
lines[l] = lines[l][:-1] + '/../ChibiOS\n'
lines.insert(l + 1, 'CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib\n')
@ -31,7 +29,6 @@ def makefile(lines):
def halconf(lines):
idx_end = lines.index('#endif /* HALCONF_H */\n')
lines.insert(idx_end - 1, '\n')
lines.insert(idx_end - 1, '#include "halconf_community.h"')
@ -41,7 +38,6 @@ def halconf(lines):
def mcuconf(lines):
idx_end = lines.index('#endif /* MCUCONF_H */\n')
lines.insert(idx_end - 1, '\n')
lines.insert(idx_end - 1, '#include "mcuconf_community.h"')

View File

@ -1,24 +1,14 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
__author__ = 'Fabien Poussin'
__version__ = '0.1'
import os
import argparse
parser = argparse.ArgumentParser(description='Project upgrade script for ChibiOS')
parser.add_argument('-p', '--path', dest='path', help='Where project files are located', required=True)
parser.add_argument('-c', '--chibios', dest='chpath', help='Where ChibiOS is located', required=True)
parser.add_argument('-v', '--verbose', dest='verbose', action='store_true')
args = parser.parse_args()
verbose = False
verbose = args.verbose
if not os.path.exists(args.chpath):
print('Invalid Chibios path', args.chpath)
exit(1)
new_chconf = os.path.abspath('{}/os/rt/templates/chconf.h'.format(args.chpath))
new_nilconf = os.path.abspath('{}/os/nil/templates/chconf.h'.format(args.chpath))
new_halconf = os.path.abspath('{}/os/hal/templates/halconf.h'.format(args.chpath))
def find(name, path):
ret = []
@ -44,7 +34,7 @@ def get_values(path):
line_num = 0
for l in f.readlines():
if l.startswith('#define') or continuation != None:
if continuation == None:
if continuation is None:
words = l.split(' ')
if len(words) > 2:
defname = words[1]
@ -56,7 +46,7 @@ def get_values(path):
else:
values[continuation]['data'].append(l)
# multi line define
if l.rstrip().endswith('\\') and continuation == None:
if l.rstrip().endswith('\\') and continuation is None:
continuation = defname
# one line define
elif not l.rstrip().endswith('\\'):
@ -116,35 +106,54 @@ def write_changes(path, source, values):
with open(path, 'w') as f:
f.write(''.join(file_lines))
new_chconf_values = get_values(new_chconf)
new_nilconf_values = get_values(new_nilconf)
new_halconf_values = get_values(new_halconf)
chconf_files = find('chconf.h', args.path)
halconf_files = find('halconf.h', args.path)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Project upgrade script for ChibiOS')
parser.add_argument('-p', '--path', dest='path', help='Where project files are located', required=True)
parser.add_argument('-c', '--chibios', dest='chpath', help='Where ChibiOS is located', required=True)
parser.add_argument('-v', '--verbose', dest='verbose', action='store_true')
args = parser.parse_args()
verbose = args.verbose
if not os.path.exists(args.chpath):
print('Invalid Chibios path', args.chpath)
exit(1)
new_chconf = os.path.abspath('{}/os/rt/templates/chconf.h'.format(args.chpath))
new_nilconf = os.path.abspath('{}/os/nil/templates/chconf.h'.format(args.chpath))
new_halconf = os.path.abspath('{}/os/hal/templates/halconf.h'.format(args.chpath))
new_chconf_values = get_values(new_chconf)
new_nilconf_values = get_values(new_nilconf)
new_halconf_values = get_values(new_halconf)
chconf_files = find('chconf.h', args.path)
halconf_files = find('halconf.h', args.path)
for c in chconf_files:
values = get_values(c)
if verbose:
print(c)
for k, v in values.items():
print(k, v)
if is_nil(c):
new_format = new_nilconf_values.copy()
set_values(values, new_format)
write_changes(c, new_nilconf, new_format)
else:
new_format = new_chconf_values.copy()
set_values(values, new_format)
write_changes(c, new_chconf, new_format)
for h in halconf_files:
values = get_values(h)
if verbose:
print(h)
for k, v in values.items():
print(k, v)
new_format = new_halconf_values.copy()
for c in chconf_files:
values = get_values(c)
if verbose:
print(c)
for k, v in values.items():
print(k, v)
if is_nil(c):
new_format = new_nilconf_values.copy()
set_values(values, new_format)
write_changes(c, new_nilconf, new_format)
else:
new_format = new_chconf_values.copy()
set_values(values, new_format)
write_changes(c, new_chconf, new_format)
for h in halconf_files:
values = get_values(h)
if verbose:
print(h)
for k, v in values.items():
print(k, v)
new_format = new_halconf_values.copy()
set_values(values, new_format)
write_changes(h, new_halconf, new_format)
write_changes(h, new_halconf, new_format)