From 8369bd244b1b878486a713f6137c7c3df5185e68 Mon Sep 17 00:00:00 2001 From: Piyush Shah Date: Thu, 14 Jun 2018 16:07:26 +0530 Subject: [PATCH] nvs_partition_generator: Modifications to enable using the utility as a Python library And also use directly as an executable --- .../nvs_partition_gen.py | 45 ++++++++++++------- tools/ci/executable-list.txt | 1 + 2 files changed, 30 insertions(+), 16 deletions(-) mode change 100644 => 100755 components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py diff --git a/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py b/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py old mode 100644 new mode 100755 index ecbe9b5db..b895fc1ca --- a/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py +++ b/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py @@ -333,29 +333,42 @@ def nvs_close(nvs_instance): """ nvs_instance.__exit__(None, None, None) -def main(): - parser = argparse.ArgumentParser(description="ESP32 NVS partition generation utility") - parser.add_argument( - "input", - help="Path to CSV file to parse. Will use stdin if omitted", - type=argparse.FileType('rb'), - default=sys.stdin) +def nvs_part_gen(input_filename=None, output_filename=None): + input_file = open(input_filename, 'rb') + output_file = open(output_filename, 'wb') - parser.add_argument( - "output", - help='Path to output converted binary file. Will use stdout if omitted', - type=argparse.FileType('wb'), - default=sys.stdout) - - args = parser.parse_args() - with nvs_open(args.output) as nvs_obj: - reader = csv.DictReader(args.input, delimiter=',') + with nvs_open(output_file) as nvs_obj: + reader = csv.DictReader(input_file, delimiter=',') for row in reader: try: write_entry(nvs_obj, row["key"], row["type"], row["encoding"], row["value"]) except InputError as e: print(e) + input_file.close() + output_file.close() exit(-2) + input_file.close() + output_file.close() + +def main(): + parser = argparse.ArgumentParser(description="ESP32 NVS partition generation utility") + parser.add_argument( + "input", + help="Path to CSV file to parse. Will use stdin if omitted", + default=sys.stdin) + + parser.add_argument( + "output", + help='Path to output converted binary file. Will use stdout if omitted', + default=sys.stdout) + + args = parser.parse_args() + input_filename = args.input + output_filename = args.output + nvs_part_gen(input_filename, output_filename) + + + if __name__ == "__main__": main() diff --git a/tools/ci/executable-list.txt b/tools/ci/executable-list.txt index 6fc884a00..3fe4158f9 100644 --- a/tools/ci/executable-list.txt +++ b/tools/ci/executable-list.txt @@ -7,6 +7,7 @@ components/partition_table/gen_esp32part.py components/partition_table/parttool.py components/partition_table/test_gen_esp32part_host/gen_esp32part_tests.py components/ulp/esp32ulp_mapgen.py +components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py docs/check_doc_warnings.sh docs/check_lang_folder_sync.sh docs/gen-kconfig-doc.py