diff --git a/tools/idf_py_actions/core_ext.py b/tools/idf_py_actions/core_ext.py index 53130cbd6d..d7a379d744 100644 --- a/tools/idf_py_actions/core_ext.py +++ b/tools/idf_py_actions/core_ext.py @@ -451,28 +451,6 @@ def action_extensions(base_actions, project_path): 'order_dependencies': ['reconfigure'], 'options': global_options, }, - 'erase_otadata': { - 'callback': build_target, - 'hidden': True, - 'help': 'Erase otadata partition.', - 'options': global_options, - }, - 'erase-otadata': { - 'callback': build_target, - 'help': 'Erase otadata partition. Deprecated alias: "erase_otadata".', - 'options': global_options, - }, - 'read_otadata': { - 'callback': build_target, - 'hidden': True, - 'help': 'Read otadata partition.', - 'options': global_options, - }, - 'read-otadata': { - 'callback': build_target, - 'help': 'Read otadata partition. Deprecated alias: "read_otadata".', - 'options': global_options, - }, 'build-system-targets': { 'callback': list_build_system_targets, 'help': 'Print list of build system targets.', diff --git a/tools/idf_py_actions/serial_ext.py b/tools/idf_py_actions/serial_ext.py index 585fa4fac5..2d154c63c2 100644 --- a/tools/idf_py_actions/serial_ext.py +++ b/tools/idf_py_actions/serial_ext.py @@ -169,6 +169,17 @@ def action_extensions(base_actions, project_path): task.action_args['encrypted'] = True break + def ota_targets(target_name, ctx, args): + """ + Execute the target build system to build target 'target_name'. + Additionally set global variables for baud and port. + Calls ensure_build_directory() which will run cmake to generate a build + directory (with the specified generator) as needed. + """ + args.port = args.port or _get_default_serial_port(args) + ensure_build_directory(args, ctx.info_name) + run_target(target_name, args, {'ESPBAUD': str(args.baud), 'ESPPORT': args.port}) + baud_rate = { 'names': ['-b', '--baud'], 'help': 'Baud rate for flashing.', @@ -185,19 +196,20 @@ def action_extensions(base_actions, project_path): 'default': None, } + BAUD_AND_PORT = [baud_rate, port] serial_actions = { 'global_action_callbacks': [global_callback], 'actions': { 'flash': { 'callback': flash, 'help': 'Flash the project.', - 'options': global_options + [baud_rate, port], + 'options': global_options + BAUD_AND_PORT, 'order_dependencies': ['all', 'erase-flash'], }, 'erase-flash': { 'callback': erase_flash, 'help': 'Erase entire flash chip. Deprecated alias: "erase_flash"', - 'options': [baud_rate, port], + 'options': BAUD_AND_PORT, }, 'erase_flash': { 'callback': erase_flash, @@ -207,7 +219,7 @@ def action_extensions(base_actions, project_path): }, 'hidden': True, 'help': 'Erase entire flash chip.', - 'options': [baud_rate, port], + 'options': BAUD_AND_PORT, }, 'monitor': { 'callback': @@ -269,26 +281,26 @@ def action_extensions(base_actions, project_path): 'partition-table-flash': { 'callback': flash, 'help': 'Flash partition table only. Deprecated alias: "partition_table-flash".', - 'options': [baud_rate, port], + 'options': BAUD_AND_PORT, 'order_dependencies': ['partition-table', 'erase-flash'], }, 'partition_table-flash': { 'callback': flash, 'hidden': True, 'help': 'Flash partition table only.', - 'options': [baud_rate, port], + 'options': BAUD_AND_PORT, 'order_dependencies': ['partition-table', 'erase-flash'], }, 'bootloader-flash': { 'callback': flash, 'help': 'Flash bootloader only.', - 'options': [baud_rate, port], + 'options': BAUD_AND_PORT, 'order_dependencies': ['bootloader', 'erase-flash'], }, 'app-flash': { 'callback': flash, 'help': 'Flash the app only.', - 'options': [baud_rate, port], + 'options': BAUD_AND_PORT, 'order_dependencies': ['app', 'erase-flash'], }, 'encrypted-app-flash': { @@ -301,6 +313,28 @@ def action_extensions(base_actions, project_path): 'help': 'Flash the encrypted project.', 'order_dependencies': ['all', 'erase-flash'], }, + 'erase_otadata': { + 'callback': ota_targets, + 'hidden': True, + 'help': 'Erase otadata partition.', + 'options': global_options + BAUD_AND_PORT, + }, + 'erase-otadata': { + 'callback': ota_targets, + 'help': 'Erase otadata partition. Deprecated alias: "erase_otadata".', + 'options': global_options + BAUD_AND_PORT, + }, + 'read_otadata': { + 'callback': ota_targets, + 'hidden': True, + 'help': 'Read otadata partition.', + 'options': global_options + BAUD_AND_PORT, + }, + 'read-otadata': { + 'callback': ota_targets, + 'help': 'Read otadata partition. Deprecated alias: "read_otadata".', + 'options': global_options + BAUD_AND_PORT, + }, }, }