mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-06-26 05:22:07 +08:00
Squashed 'opendbc/' changes from 5db3dfe..f034dee
f034dee pass dirname explicitly to generator helperfunctions and whitespace
d2fb5f0 small generator cleanup
ab04e55 Update generator.py
d86d7f1 Update generator.py
031acc5 Update generator.py
19a4249 Update generator.py
9c49b88 Update generator.py
git-subtree-dir: opendbc
git-subtree-split: f034deec7dda00c4c33a614ad104ce51aeb604b9
old-commit-hash: 71f547219c
This commit is contained in:
+34
-22
@@ -4,34 +4,46 @@ import re
|
||||
|
||||
cur_path = os.path.dirname(os.path.realpath(__file__))
|
||||
generator_path = os.path.join(cur_path, '../')
|
||||
include_pattern = re.compile(r'CM_ "IMPORT (.*?)"')
|
||||
|
||||
for dir_name, _, _ in os.walk(cur_path):
|
||||
|
||||
def read_dbc(dir_name, filename):
|
||||
with open(os.path.join(dir_name, filename)) as file_in:
|
||||
return file_in.read()
|
||||
|
||||
|
||||
def create_dbc(dir_name, filename):
|
||||
dbc_file_in = read_dbc(dir_name, filename)
|
||||
|
||||
includes = include_pattern.findall(dbc_file_in)
|
||||
|
||||
output_filename = filename.replace('.dbc', '_generated.dbc')
|
||||
output_file_location = os.path.join(generator_path, output_filename)
|
||||
|
||||
with open(output_file_location, 'w') as dbc_file_out:
|
||||
dbc_file_out.write('CM_ "AUTOGENERATED FILE, DO NOT EDIT"\n')
|
||||
|
||||
for include_filename in reversed(includes):
|
||||
include_file_header = '\n\nCM_ "Imported file %s starts here"\n' % include_filename
|
||||
dbc_file_out.write(include_file_header)
|
||||
|
||||
include_file = read_dbc(dir_name, include_filename)
|
||||
dbc_file_out.write(include_file)
|
||||
|
||||
dbc_file_out.write('\nCM_ "%s starts here"\n' % filename)
|
||||
|
||||
core_dbc = include_pattern.sub('', dbc_file_in)
|
||||
dbc_file_out.write(core_dbc)
|
||||
|
||||
|
||||
for dir_name, _, filenames in os.walk(cur_path):
|
||||
if dir_name == cur_path:
|
||||
continue
|
||||
|
||||
print dir_name
|
||||
|
||||
for filename in os.listdir(dir_name):
|
||||
for filename in filenames:
|
||||
if filename.startswith('_'):
|
||||
continue
|
||||
|
||||
print filename
|
||||
dbc_file = open(os.path.join(dir_name, filename)).read()
|
||||
dbc_file = '\nCM_ "%s starts here"\n' % filename + dbc_file
|
||||
|
||||
includes = re.finditer(r'CM_ "IMPORT (.*?)"', dbc_file)
|
||||
for include in includes:
|
||||
dbc_file = dbc_file.replace(include.group(0), '')
|
||||
include_path = os.path.join(dir_name, include.group(1))
|
||||
|
||||
# Load included file
|
||||
include_file = open(include_path).read()
|
||||
include_file = '\n\nCM_ "Imported file %s starts here"\n' % include.group(1) + include_file
|
||||
dbc_file = include_file + dbc_file
|
||||
|
||||
dbc_file = 'CM_ "AUTOGENERATED FILE, DO NOT EDIT"\n' + dbc_file
|
||||
|
||||
output_filename = filename.replace('.dbc', '_generated.dbc')
|
||||
output_dbc_file = open(os.path.join(generator_path, output_filename), 'w')
|
||||
output_dbc_file.write(dbc_file)
|
||||
output_dbc_file.close()
|
||||
create_dbc(dir_name, filename)
|
||||
|
||||
Reference in New Issue
Block a user