esp-idf/components/partition_table/gen_extra_subtypes_inc.py

38 wiersze
1.6 KiB
Python
Executable File

#!/usr/bin/env python
# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
import argparse
def gen_header_file(path: str, subtypes: str) -> None:
HDR_MESSAGE = '/* Automatically generated file. DO NOT EDIT. */\n\n'
PARTTOOL_USAGE = 'If you want to use parttool.py manually, please use the following as an extra argument:'
with open(path, 'w') as f:
f.write(HDR_MESSAGE)
if subtypes:
f.write('/*\n\t' + PARTTOOL_USAGE + '\n\t')
f.write('--extra-partition-subtypes ')
for line_no in subtypes:
f.write(f'"{line_no}" ')
f.write('\n*/\n\n')
f.write('#pragma once\n\n')
for line_no in subtypes:
try:
fields = [line.strip() for line in line_no.split(',')]
fields[0] = fields[0].strip()
fields[1] = fields[1].strip()
fields[2] = fields[2].strip()
f.write('ESP_PARTITION_SUBTYPE_%s_%s = %s,\n' % (fields[0].upper(), fields[1].upper(), fields[2]))
except ValueError as err:
raise ValueError('Error parsing custom subtypes: %s' % err)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='ESP32 extra partitions utility')
parser.add_argument('config_dir', help='Path to config directory')
parser.add_argument('extra_partition_subtypes', help='Extra partition subtype entries', nargs='*')
args = parser.parse_args()
gen_header_file(args.config_dir, args.extra_partition_subtypes)